C++11新特性: auto: auto讓編譯器通過初始值來推算變數的類型。 auto定義的變數必須有初始值。 auto聲明的所有變數的初始基本數據類型都必須一樣。 decltype: decltype的作用是選擇返回操作數的數據類型。 編譯器分析表達式並得到它的類型,卻不計算表達式的值。 如果de ...
C++11新特性:
auto:
auto讓編譯器通過初始值來推算變數的類型。
auto定義的變數必須有初始值。
auto聲明的所有變數的初始基本數據類型都必須一樣。
decltype:
decltype的作用是選擇返回操作數的數據類型。
編譯器分析表達式並得到它的類型,卻不計算表達式的值。
decltype(f()) sum = x; //sum的類型就是函數f的返回類型
如果decltype使用的表達式不是一個變數,則decltype返回表達式結果對應的類型。
int i = 42, *p = &i, &r = i; decltype(r+0) b; //正確:加法的結果是int,b是一個未初始化的int decltype(*p) c; //錯誤:c是int& ,必須初始化
decltype的表達式如果是加上了括弧的變數,結果將是引用。
範圍for語句(range for)
語法形式: for(變數 :對象)
statement
//輸出string對象的字元 string str("some string"); for ( auto c : str) cout << c << endl; // //修改字元串中的字元 string s("Hello World!!!"); for ( auto &c : s) //c是引用 c = toupper(c);
2018年7月27日