原字符串
字符串前加’R’前缀 ,字符串首尾加上括号()
string path = "C:\\Program Files\\Microsoft.NET\\ADOMD.NET";
C++ 11
string path = R"(C:\Program Files\Microsoft.NET\ADOMD.NET)";
nullptr
用来区分空指针、0
区间迭代
vector<int> iVec;
for(auto i : iVec)
{
}
std::array
std::array 保存在栈内存中,相比堆内存中的 std::vector,我们能够灵活的访问这里面的元素,从而获得更高的性能.
std::array 会在编译时创建一个固定大小的数组,std::array 不能够被隐式的转换成指针,使用 std::array只需指定其类型和大小即可
std::array<int, 4> arr= {1,2,3,4};
int len = 4;
std::array<int, len> arr = {1,2,3,4}; // 非法, 数组大小参数必须是常量表达式
std::thread
编译需要使用 -pthread 选项,
join()主线程等待子线程结束方可执行下一步(串行),
detach()是的子线程放飞自我,独立于主线程并发执行
#include <iostream>
#include <thread>
void foo()
{
std::cout<<"in foo \n";
}
void bar(int x)
{
std::cout<<"in bar"<<x<<std::endl;
}
int main()
{
std::thread first(foo);
std::thread second(bar, 99);
first.join();
second.detach();
std::cout<<"end of main\n";
return 0;
}
新容器
unordered_set,unordered_map, unordered_multiset,和unordered_multimap
智能指针类
shared_ptr和unique_ptr