C++ primer字符串、向量和数组

1.    Cin>>string(类型) 不读取空格

2.    getline:读入内容直到换行符,保留空白符,换行符不不存入string

3.    s.empty () s为空则返回true,否则返回flase

4.    s.size () s中的字符的个数,返回值为无符号数

5.    字面值与string对象相加:当把string对象和字符字面值及字符串字面值混在一条语句中使用时,必须确保每个加法运算符的两侧的运算对象至少有一个是string(字符串字面值与string不是同一个类型)

6.    cctype 判断字符串内容的头文件

7.    在名为cname的头文件中定义的名字从属于命名空间std,而定义正在名为.h的头文件中的则不然

8.     size_type:string::size_type和vector::size_type可表示各自类型的长度或下标,无符号整数

9.    处理string每个字符,for(auto 单个字符: string 字符串),若想改变则将“单个字符”设置为引用

10.  实例化:编译器根据模板创建类或函数的过程

11.  Begin和end运算符返回类型由对象是否是常量决定,cbegin和cend始终返回const_iterator

12.  如果容器为空,则begin和end返回的是同一个迭代器,都是尾后迭代器

13.  迭代器比较:两个迭代器,指向同一个容器中的元素或尾元素的下一个位置,比较的是位置的前后;相减得到different_type型的有符号证书,表示两个迭代器的距离

14.  Vector 理解为数组(实际功能比数组强大),迭代器理解为指针(注意不同处)

15.  但凡使用了迭代器的循环体,都不要向迭代器所属的容器添加元素

16.  数组下标类型:size_t类型,无符号类型

17.  两个指针相减的结果的类型是:ptrdiff_t,有符号类型

18.  cin输入string类型,遇空格停止

19.  vector对象(以及string对象)的下标运算符可用于访问已存在的元素,而不能用于添加元素

20.  迭代器提供了对对象的间接访问

21.  尽管C++支持C风格字符串,但是在C++程序中最好还是不要使用它们。因为C风格字符串不仅使用起来不太方便,而去极易引发程序漏洞,是诸多安全问题的根本原因。

22.  C风格字符串:字符串存放在字符数组中并以空字符结束(‘\0’)

23.  对于大多数应用来说,使用标准库string比使用C风格字符串更加安全、更加高效

24.  c_str函数返回一个C风格的字符串,也就是说函数返回一个指针,该指针指向一个以空字符结束的字符数组

25.  现代C++程序应当尽量使用vector和迭代器,避免使用内置数组和指针;应该尽量使用string,避免使用C风格的基于数组的字符串

26.  多维数组实际上是数组的数组

27.  a[3][4]  a[3]  a[0] a[1] a[2]  a[0] = a[4]

28.  使用范围for语句处理多维数组,除了最内层的循环外,其他所有循环的控制变量都应该是引用类型

29.   首指针和尾后指针:使用标准库函数begin()和end()可以得到数组的首指针和尾后指针;提供这两个指针可以将数组拷贝初始化vector对象;尾后指针不指向具体元素,不能解引用或递增

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章