c++11新特性

统一样式的初始化

int arr[] {1,2,3}; //没有等号
vector<int> vi{1,2,3};
map<int, string> m{ {1,"a"}, {2, "b"} };
string str{"hello"};
int *p = new int[20]{1,2,3};

struct A {
 int i,j;
 A(int m, int n):i(m), j(n) {}
};
A func(int m, int n){return {m,n};}

A *p = new A{3,7};

成员变量默认初始值

class B{
public:
int m = 123;
int n;
}

auto 关键字

auto a = 100; // a 为 int
auto p = new A(); // p 是 A *
auto k = 23LL; // k为long long

decltype求表达式类型

int i;
double d;

decltype(i) c; // c为 int类型
decltype(d) f; // f为 double类型

智能指针 shard_ptr

需要include<memory>
见图片

空指针 nullptr

见图三

基于范围的for循环

无序map, 哈希表

需要include<unordered_map>

正则表达式

需要引入 include<regex>

labmda 表达式

强制类型转换

static_cast, const_cast, interpret_cast, dynamic_cast

try-catch异常处理

try{
 if(..)throw -1;
else if () throw 1.0
}
catch(int i){
}
catch(double d){
}
catch(...){
// 捕获其他异常, ... 统配
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容