c++11特性

2019-02-27  本文已影响0人  zhaoQiang012

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关键字

使用auto关键字可以完成自动推导,auto声明的变量需要立即赋值,auto不能代表一个实际的类型声明。
在c++14中auto关键字还可以作为函数的返回值。但只能用于定义函数,不能用于声明函数。

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) {
   // 此方式支持数组、字符串、容器、迭代器等
}

3. 简洁的lambda表达式

形式如下:

4. decltype

decltype是用来从一个变量或表达式中获取类型。

int a = 1;
decltype(a) b = a;

其它还有不少特性,先更新这些。

上一篇 下一篇

猜你喜欢

热点阅读