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对象;尾后指针不指向具体元素,不能解引用或递增