首页 > 编程语言 > 详细

第3章 字符串、向量和数组(74~101~117)

时间:2021-04-27 14:17:22      阅读:25      评论:0      收藏:0      [点我收藏+]

1. 使用命名空间的using声明

  - using namespace::name;

2. 头文件不应包含using声明,防止名字冲突。

3. 把s4 初始化为由连续n个字符c组成的串

  - string s4 (n,‘c‘);    //s4的内容是cccccccccc

4. 触发getline返回的那个换行符实际上被丢弃掉了,得到的string对象中并不包含换行符。

5. 因为某些历史原因,也为了与c兼容,所以c++中的字符串字面值并不是标准库类型string的对象。切记,字符串字面值与string是不同的类型。前者表示由常量构成的数组,后者表示string对象,可变长的序列。

6. cctype头文件和ctype.h头文件内容是一样的,一般来说,c++程序应该使用名为cname的头文件而不使用name.h的形式,标准库中的名字总能在命名空间std中找到。如果使用.h形式的头文件,程序员就不得不时刻记住那些是从c语言中继承来的,哪些又是c++所独有的。

7. 标准库类型vector表示对象的集合,其中所有对象的类型都相同。

8. vector

vector<int> v {1,2,3,4,5,6};
for (auto &i : v)       // 使用auto自动获取i的类型,为vector<int>
    i *= i;
for (auto i : v)
    cout << i <<" ";
cout << endl;

9. vector的限制:不能在范围for循环中向vector对象添加元素。任意一种可能改变vector对象容量的操作,比如push_back,都会使该vector对象的迭代器失效。

10. 解引用迭代器可以获得迭代器所指的对象,如果该对象类型恰好是类,就有可能进一步访问它的成员。

  - (*it).empty()

101~117

11. 定义数组的时候必须指定数组的类型,不允许用auto关键字由初始值的列表推断类型。另外和vector一样,数组的元素应为对象,因此不存在引用的数组。

12. 不允许将一个数组赋值给另一个数组。

13. 使用数组的时候,编译器一般会把它转换为指针。使用数组作为一个auto的初始值时,推断得到的类型是指针而非数组。

14. ++i 和 i++的结果是一样的,都要等代码块执行完毕才能执行语句,但是性能是不同的。在大量数据的时候++i的性能要比i++的性能好原因:i++由于是在使用当前值之后再+1,所以需要一个临时的变量来转存。而++i则是在直接+1,省去了对内存的操作的环节,相对而言能够提高性能。

 

第3章 字符串、向量和数组(74~101~117)

原文:https://www.cnblogs.com/yanhualianye/p/14696689.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!