c++11特性
本次筆記記錄一些常用的c++11特性矩肩,以方便查看。
1. 方便的列表快速初始化
int i = int{ 1 };
int arr[5] {1, 2, 3};
vector<int> v{0, 1, 3};
map<int, int> m{{1, 2}, {3, 4}};
string s{"hello"};
int* a = new int {1};
int * p = new int[] {1, 2, 3};
2. 方便的auto關(guān)鍵字
使用auto關(guān)鍵字可以完成自動(dòng)推導(dǎo)愧捕,auto聲明的變量需要立即賦值奢驯,auto不能代表一個(gè)實(shí)際的類型聲明。
在c++14中auto關(guān)鍵字還可以作為函數(shù)的返回值次绘。但只能用于定義函數(shù)瘪阁,不能用于聲明函數(shù)。
auto x = 5; // OK
auto a = new auto(1); // OK
const auto* p = &x, u = 6; // p是const int*類型, u是const int類型
static auto v = 0.1; // v是double類型
auto int i; // error
auto s; // error
int arr[5] = {1, 2, 3, 4, 5};
for (auto i : arr) {
// 此方式支持?jǐn)?shù)組邮偎、字符串管跺、容器、迭代器等
}
3. 簡(jiǎn)潔的lambda表達(dá)式
形式如下:
- [函數(shù)對(duì)象參數(shù)](操作符重載函數(shù)參數(shù))->返回值類型{函數(shù)體}
- []內(nèi)的參數(shù)指的是lambda表達(dá)式能獲取到的全局變量禾进。如果傳入
=
豁跑,則表示傳入所有全局變量。 - ()內(nèi)的參數(shù)指的是lambda表達(dá)式的形參泻云。
- []內(nèi)的參數(shù)指的是lambda表達(dá)式能獲取到的全局變量禾进。如果傳入
4. decltype
decltype是用來(lái)從一個(gè)變量或表達(dá)式中獲取類型艇拍。
int a = 1;
decltype(a) b = a;
其它還有不少特性狐蜕,先更新這些。