
C++学习
gxuan
我是一只IT小菜鸟
展开
-
C++中的模板的两种编译模型
C++中的模板的两种编译模型http://blog.youkuaiyun.com/thinkscape/article/details/3549630http://linhs.blog.51cto.com/370259/127482转载 2012-05-31 11:21:46 · 612 阅读 · 0 评论 -
测量程序运行时间的方法
转自: http://www.cppblog.com/qey/articles/66772.html精确测量某一个程序运行的确切时间是很困难的,所谓的测量运行时间只是做一个近似的测量。目前测量程序运行时间主要有两类方法,一种是基于计时器Timer的,另一种是基于计数器Counter的。一:基于Timer的测量方法。缺点:精度不够高,不能用于程序运行持续时间小于100ms的测转载 2012-09-15 17:39:32 · 1354 阅读 · 0 评论 -
C++中 explicit关键字
C++提供了关键字explicit,用来防止由构造函数定义的隐式转换。隐式转换:可以用单个实参来调用的构造函数定义了从形参类型到该类类型的一个隐式转换。C++中, 一个参数的构造函数, 承担了两个角色。 1 是个构造器 2 是个默认且隐含的类型转换操作符。所以, 有时候在我们写下如 AA = XX, 这样的代码, 且恰好XX的类型正好是AA单参数构造器的参数类型,这时候编译器就自动调用原创 2012-10-09 16:39:32 · 665 阅读 · 0 评论 -
【C++ Primer 学习笔记】Chapter14
。。。原创 2012-10-10 10:30:25 · 399 阅读 · 0 评论 -
二维数组中的查找 之 二分法
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例如下面的二维数组就是每行、每列都递增排序。如果在这个数组中查找数字7,则返回true;如果查找数字5,由于数组不含有该数字,则返回false。 我的解题思路是这样的矩阵行列都是从小到大转载 2012-11-07 10:06:36 · 2721 阅读 · 0 评论 -
iostream & iostream.h
#include // 这个就是1998年标准化以后的标准头文件#include // 这个就是标准化以前的头文件更本质上的区别就是iostream把标准C++库的组件放在一个名位std的namespace里面。而相对的iostream.h则将这些标准组件放在全局空间里,同时在标准化以后旧有的C标准库也已经经过改造了。 使用前者,就需要在代码中添加语句:using原创 2012-12-01 21:30:08 · 505 阅读 · 0 评论 -
invalid conversion from `const char*' to `char*' .
invalid conversion from `const char*' to `char*' 今天编译MRF-benchmark的时候,编译出现错误char *dot = strrchr(filename, '.');strrchr的第一个参数是const char*类型,filename是const char*类型,改成下面的就通过编译了:char *dot =原创 2012-12-05 14:11:07 · 3387 阅读 · 0 评论 -
Error: undefined reference to png_check_sig
undefined reference to png_check_sig编译MRF-benchmark的时候,在编译过程中碰到 undefined reference to `png_check_sig’ 错误。google了一下,发现由于使用的新的 libpng 1.5(1.4也是)版本,去掉了png_check_sig函数,替换为了png_sig_check函数,于是编辑gd库的原创 2012-12-07 09:58:22 · 2676 阅读 · 0 评论 -
Error: undefined reference to `templatename<int,int >' ( error LNK2019: 无法解析的外部符号......)
在ubuntu10.10下面编译MRF-benchmark/binary的时候,出现了undefined refrence to ......链接错误,这是个模版函数,编译文件包含了声明模版函数的头文件,但是模版的实现是在另一个源文件实现的。上网查了些资料才发现问题出在模版的声明和定义相分离上面,很多编译器不支持C++模版函数声明定义分离编译,g++就不支持,所以才出现找不到函数实现的问题。对原创 2012-12-10 21:37:29 · 2492 阅读 · 0 评论 -
c++模板之声明定义分离编译模型
当我们声明和定义一个模板的时候,必须要让声明和定义放在一个文件里。否则编译器会报错。这就是为什么boost的实现文件的后缀名是hpp了。这其中的理由是什么呢?为什么会这样?首先,一个编译单元(translation unit)是指一个.cpp文件以及它所#include的所有.h文件,.h文件里的代码将会被扩展到包含它的.cpp文件里,然后编译器编译该.cpp文件为一个.obj文件(假转载 2012-12-10 21:26:32 · 740 阅读 · 0 评论 -
【C++ Primer 学习笔记】 chapter12 类
chapter12 类12.1 类的定义和声明1)将关键字const加在形参表之后,就可以将成员函数声明为常量: double avg_price()const; const成员不能改变其所操作对象的数据成员,const必须同时出现在声明和定义中,若只出现在其中一处,就会出现一个编译时错误;2)类背后蕴涵的基本思想是数据抽象和封装;3)将一个类成员函数定义为内联函原创 2012-09-15 16:53:12 · 462 阅读 · 0 评论 -
【C++ Primer 学习笔记】chapter 11 泛型算法
chapter 11 泛型算法1. 使用泛型算法必须包含algorithm头文件;2. 标准库还定义了一组泛化的算术算法,其命名习惯与泛型算法相同,使用这些算法必须包含numeric头文件;3. 使用插入迭代器back_inserter的程序必须包含iterator头文件;4. 通常,如果要以一个已存在的容器为副本创建新容器,更好的方法是直接用输入范围作为性构造容器的初始化原创 2012-09-13 17:30:47 · 783 阅读 · 0 评论 -
【C++ Primer 学习笔记】chapter7 函数
Notice:1. 普通的非引用类型的参数通过复制对应的实参实现初始化;2. 如果使用引用实参的唯一目的是避免复制实参,则应将形参定义为const引用; 非const引用形参只能与完全同类型的非const对象关联;3. 当编译器检查数组形参关联的实参时,它只会检查实参是不是指针、指针的类型和数组元素的类型是否匹配,而不会检查数组的长度;4. 不能返回局部变量的引用, 不要返回指向局原创 2012-09-04 11:04:48 · 784 阅读 · 0 评论 -
小bug
这个出现好几次了,貌似原因不一样。今天的问题是直接ctrl + F5就这个样了 其实是参数没给对 根据程序里把需要传递给 argv[] 就正常了。参数直接在命令行里面传,或者 XXX项目 属性页\配置属性\调试\命令参数"项添加要传递的参数原创 2012-06-29 10:29:36 · 712 阅读 · 0 评论 -
中国邮路问题
中国邮递员问题 一个邮递员送信,要走完他负责投递的全部街道(所有街道都是双向通行的且每条街道可以经过不止一次),完成任务后回到邮局,应按怎样的路线走,他所走的路程才会最短呢? 解决方案1、图论建模由于街道是双向通行的,我们可以把它看成是赋权无向连通图,将路口模型为点,街道模型为边,街道的长度就是每条边的权值,问题转化为在图中求一条回路,使得回路的总权值最小。原创 2012-08-15 14:55:24 · 13854 阅读 · 2 评论 -
【C++ primer 学习笔记】chapter5 表达式
C++ primer 学习笔记chapter 5 表达式notes:5.1. %求模运算,如果两数均为正,结果为正(或0);如果两书皆为负,结果为负(或0);如果两数符号不一致,操作的结果和符号取决于机器。如果求模的结果随分子的符号,则除出来的值向0一侧取整;如果随分母的符号,则除出来的值向负无穷一侧取整。 5.3 移位操作符>移位操作符具有中等优先级:其优先级比算数原创 2012-08-28 10:57:26 · 724 阅读 · 0 评论 -
【C++ Primer 学习笔记】chapter6 语句
习题6.16在输入两个vector的元素时可以用特定值标记输入,也可以用文件结束符(输入ctrl+z)来控制元素输入的结束,使用后一种方法的时候,在第二个输入循环钱要记得将流cin恢复为有效状态 cout<<"请输入第一个int型vector对象ivec1中的元素:(ctrl+z to end)"<<endl;while(cin>>num1) ivec1.push_back原创 2012-08-29 16:26:27 · 546 阅读 · 0 评论 -
【C++ Primer 学习笔记】chapter8 标准IO库
Notice:1. iostream定义读写控制窗口的类型,fstream定义读写已命名文件的类型,而sstream所定义的类型则用于读写存储在内存中的string对象;2. 如果函数有基类类型的引用形参时,可以给传递其派生类型的对象;3. 只有支持赋值的元素类型可以存储在vector或其他容器类型里,因此不存在存储流对象的vector或其他容器;4. 形参或返回类型也不能为流类型原创 2012-09-04 19:09:09 · 423 阅读 · 0 评论 -
【C++ Primer 学习笔记】chapter9 顺序容器
顺序容器类型1. 顺序容器vector 支持快速随机访问list 支持快速插入/删除deque 双端队列2. 顺序容器适配器stack 后进先出(LIFO)栈queue 先进后出(FIFO)队列priority 有优先级管理的队列笔记:9.1 顺序容器的定义1). 复制容器对象的构造函数和使用两个迭代器的构造函数之间的差别答:差别在于:复制容器对象的原创 2012-09-07 20:38:12 · 765 阅读 · 0 评论 -
【C++ rimer 学习笔记】ch13 复制控制
第十三章 复制控制1. 复制构造函数具有单个形参,该形参(常用const修饰)是对该类类型的引用,当定义一个新对象并用一个同类型的对象对它进行初始化时,将显式使用复制构造函数,当将该类型的对象传递给函数或从函数返回该类型的对象时,将隐式使用复制构造函数;2. 不管类是否定义了自己的析构函数,编译器都自动执行类中非static数据成员的析构函数;3.原创 2012-09-28 20:22:03 · 623 阅读 · 0 评论 -
【C++ Primer 学习笔记】 chapter 10 关联容器
chapter10 关联容器关联容器类型map 关联数组:元素通过键来存储和读取set 大小可变的集合,支持通过键实现的快速读取multimap 支持同一个键多次出现的map类型multiset 支持同一个键多次出现的set类型 10.1 pair类型1)至少可以使用三种方法创建pair对象“1> 在定义pair对象时提供初始化式从而创建pair对象:原创 2012-09-12 11:09:31 · 802 阅读 · 0 评论 -
wxWidgets
wxWidgets原创 2012-12-11 17:07:11 · 654 阅读 · 0 评论