定義和初始化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型別...