`
hulianwang2014
  • 浏览: 681300 次
文章分类
社区版块
存档分类
最新评论
  • bcworld: 排版成这样,一点看的欲望都没有了
    jfinal

再读c++ primer

 
阅读更多

再读c++ primer

1.extern的使用 是当在a.cpp文件中想使用b.cpp文件中的全局变量extern_data的时候,当在b.cpp中定义了extern_data,a.cpp使用的时候要在a.cpp文件中声明externint extern_data。

2.对于数组的初始化: 如果在定义数组的时候,没有初始化数组元素,而且是函数内的数组(不是全局的),那么这个数据中的数据时任意的,但是如果在定义数据同时进行初始化部分元素(1、2、3….)那么那些没有被初始化的数组元素被初始化成0,这个不管这个数组是否是全局的。

3.int *p = new int 这个p是未初始化的整形指针

int *p = newint()这个p是经初始化的整形指针

4.c++ 为我们定义了一些调试的宏

__FILE__ 文件名

__LINE__ 所在行号

__TIME__ 文件编译时间

__DATE__ 文件编译日期

5.检测流是否可用状态的方法是把流当成是bool类型

if(cin) while(cin)

流的状态有badbit、failbit、eofbit三种状态。

badbit标志着系统级的故障,如无法恢复读写错误。如果出现了这样的错误,这个流就不可以使用了

failbit这种状态是可恢复的,比如说该输入整数的时候,输入的是字符串

eofbit是在遇到文件结束的时候设置,此时同时还设置了failbit位

6.顺序容器中的元素顺序是和这个元素的值是不相关的,顺序容器元素的顺序被决定于插入的顺序。

7.直接对顺序容器对顺序容器进行赋值的话,容器和容器中的元素类型必须一致。 vector<int> a(3,10);

vector<int>b(a);

但是对构造顺序容器使用迭代器的话,容器中的值只要兼容就行。容器类型可以不相同

构造顺序容器还可以使用数组开始指针和数组结束指针。

vector<<vector<int> > v_v;

list 中的迭代器不支持迭代器去加一个数字。list<int>::iterator it; it += 5(是不支持的)

垂悬指针: 指向曾经存在的对象,但该对象已经不再存在了,此类指针称为垂悬指针。结果未定义,往往导致程序错误,而且难以检测。

顺序容器插入元素:p.insert(p,t)在p前插入值为t、p.insert(p,n,t)在p前插入n个值为t的元素、p.insert(p,b,e)在p前插入迭代器b到迭代器e的元素。

8.c.back()、c.front()返回的是引用,就是迭代器的解引用,这个元素值

c.erase(p)p是一个迭代器指针,指向被删除的元素。

c.erase(b,e)删除b开始 e结束的元素

c.pop_front()删除第一个元素

c.pop_back()删除最后一个元素

9.string的操作

s.find(args)在s中查找args第一次出现

s.rfind(args)在s中查找args最后一次出现

最近工作实在是太忙了,简直是被生活的状态

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics