三 字串 向量 陣列

2021-06-20 14:01:57 字數 1001 閱讀 6615

直接初始化和拷貝初始化

string s1(10,'c');

string s2 = string(10,'c');//會影響效能!?

s1.size();//返回物件中字元的個數,型別為string::size_type,是無符號型別,不要與有符號型別混用

//範圍 for

string str("some string");

for(auto c : str)

//引用每個元素

string str("all to upper");

for(auto &c : str)

cout<< str << endl;

使用下標訪問空string會越界引發不可預知結果

無論何時用到字串的下標,都應該注意檢查其合法性.

列表初始化,盡可能把花括號內的值當成是元素初始值來處理,如果花括號提供的值不能用來列表初始化,則考慮建構函式等

在for等迴圈中,不要向容器中新增新元素,也不要改變容器的大小.在迭代中,某些對vector物件的操作會使迭代器失效.

iterator ite;

ite++;

--ite;

//不會越界?

ite + n;

ite - n;

int a[10];

decltype(a) b; 型別為10個元素的陣列

標準庫函式 begin  end;end並非是陣列的最後乙個元素,而是最後乙個元素的下乙個位置.

ptrdiff_t size_t 都是帶符號型別.

標準庫限定使用的下標必須是無符號型別,陣列可以是有符號的.

string.c_str()返回c風格字串,無法保證此字串一直有效,如果以後希望使用,應該重新拷貝一次.

decltype 多維陣列 需要逐層解析 auto 也一樣

三 字串 向量和陣列

一 標準庫型別string 1 使用等號 初始化乙個變數,執行的是拷貝初始化,編譯器把等號右側的初始值拷貝到新建立的物件中 如何不使用等號,則執行的是直接初始化。2 os is s 從is中讀取字串賦給s,字串以空白分隔,返回is getline is,s 從is中讀取一行賦給s,返回is 3 st...

C 學習筆記三 字串 向量和陣列

標準庫型別string表示可變長的字串行,使用之前必須包含string標頭檔案,string定義在命名空間std中。在執行讀寫操作時,string物件會自動忽略開頭的空白 即空格符 換行符 製表符等 並從第乙個真正的字元讀起,直到遇到下一處空白為止。include include using nam...

三 字串 一

三 字串 1。直接量三種寫法 1 單引號,不會替換變數,且只支援 兩個轉譯字元 2 雙引號,會進行變數替換,雙引號能支援除了 以外的所有轉譯符 3 heredoc,比如 string end of string haha hehe hoho.hehe end of string 其中end of s...