CplusPlus標準11之字串

2021-08-27 07:50:45 字數 1060 閱讀 3708

定義和初始化string物件:

string s1;                              //預設初始化,為空串

string s2 = s1;                       //可讀性差,缺乏補償優勢;

string s3 = "hello";                //拷貝初始化 

string s4(10, 'c');                    //內容為"cccccccccc", 直接初始化 

string s5("hello");                   //等價於string s5 = "hello"; 直接初始化

string物件上的操作:

讀取未知數量的操作

string s1;

while(cin >> s1){

使用getline函式讀取一行 

string s2;

while(getline(cin >> s2))

cout << s2;

string的empty和size操作

string.empty()判斷字串是否為空返回乙個布林值;string.size()返回string物件的長度,即string物件中字元的個數;

string::size_type型別:string.size()返回string::size_type型別,該型別跟機器無關;

string比較:

比較時大小寫敏感,相等性運算子(!=/==);關係運算子 (/>=)

賦值:string s1(10, 's'), s2;

s2 = s1;

字面值和string物件相加

string s1 = "come";

string s2 = "with me";

string s3 = s1 + " " + s2;                                   //正確;

string s5 = "hello" + " world";                           //錯誤語法(+運算子兩側的運算物件必須至少乙個string物件);

C 11新標準constexpr關鍵字

constexpr是c 11新標準規定的規定的關鍵字。有時我們很難分辨乙個初始值是不是常量表示式,當然可以定義乙個const變數並把它的初始值設為我們認為的某個常量表示式,但在實際使用時,儘管要求如此卻常常發現初始值並非常量 表示式的情況。可以說,這時的物件的定義與使用根本就是兩回事。c 11新標準...

C 11新標準之五 constexpr

常量表示式必須在編譯期間計算出它的值並且 它的值不可以被改變。在c 11中,我們可以通過宣告constexpr讓編譯器確定乙個變數是不是常量表示式,宣告為constexpr的變數是const型別的變數,它必須由常量表示式來初始化。例如 cpp view plain copy constexpr in...

C 11新標準之範圍for語句

說起for語句,我們都不會陌生,因為在迴圈中經常會用for語句來遍歷一些陣列什麼的,就形如以下的for迴圈,是我們最常見的 for int i 0 i 5 i 範圍for語句可以遍歷容器或者其他序列的所有元素。以下用乙個小小的 測試片段說明一下這個新特性的使用方法 傳統寫法,遍歷每個string型別...