C primer字串 向量和陣列

2021-08-08 06:21:27 字數 1657 閱讀 8233

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 ...