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對象;尾後指針不指向具體元素,不能解引用或遞增