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物件;尾後指標不指向具體元素,不能解引用或遞增
C Primer 第3章 字串 向量和陣列
6 多維陣列 using namespace name 標頭檔案不應包含using宣告 使用等號 初始化乙個變數,實際上執行的是拷貝初始化,編譯器把等號右側的初始值拷貝到新建立的物件中去。如果不使用等號,則執行的是直接初始化。常用操作 getline is,s 從is中讀取一行賦給s,返回is s....
字串 向量和陣列
迭代器介紹 陣列定義和初始化string物件 string物件上的操作 處理string物件中的字元 定義和初始化 vector v1 vector v2 v1 v2中包含有v1中所有元素的副本 vector v2 v1 等價於v2 v1 vector v3 n,va1 v3包含n個重複的v1 ve...
C 字串 向量和陣列
vector物件 以及string物件 的下標運算子可用於訪問已存在的元素,而不能用於新增元素。只能對確知已存在的元素執行下標操作。所有標準庫容器都可以使用迭代器,string物件不屬於容器型別,但是支援很多與容器型別類似的操作。const vectorcv auto it cv.begin it ...