欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++11的新特性

程序员文章站 2024-03-14 11:06:10
...

1.统一的初始化方法

int arr[3]{1, 2, 3};
vector<int> iv{1 ,2, 3};
map<int, string> mp{{1, "a"}, {3, "b"}};
int* p = new int[6]{1, 2, 3};

2.成员变量有初始值

class Test{
public:
	int m_ = 100;
};

3.auto关键字

用于定义变量,编译器可以自动判断变量的类型

4.decltype关键字

求表达式的类型

5.智能指针shared_ptr

头文件
通过shared_ptr的构造函数,可以让shared_ptr对象托管一个new运算符返回的指针

shared_ptr <T>  ptr(new T);

多个shared_ptr对象可以同时托管一个指针,系统会维护一个托管计数。当无shared_ptr托管该指针时,delete该指针
shared_ptr对象不能托管指向动态分配的数组的指针,否则程序运行中会出错。对象行吗???ok
一些方法:

6.空指针nullptr

7.基于范围的for循环

int arr[] = {1 ,2, 3};
for(int& e:arr)
	e *= 10;
for(int e: arr)
	cout << e << endl;

8.右值引用和move语义

右值:一般来说,不能取地址的表达式,就是右值,能取地址的,就是左值
不用深拷贝,提高效率
C++11的新特性

1.无序容器(哈希表)

2.正则表达式

包含头文件<regex>

3.Lambda表达式

形式:
[外部变量访问方式说明符](参数表)->返回值类型
{
语句组
}

sort(a, a+4, [](int x, int y)->bool{ return x%10 < y%10; });//方便吧
相关标签: C/C++ c++