
列表初始化c11以后支持{ }的列表初始可以使用{ }括住数据来进行初始化使用{ }初始化时可以省略号{ }中的数据要匹配构造使用{ }可以统一初始化方式。#includeiostream #includevector using namespace std; int main(){ vectorpairint,intvp; vp.push_back({1,2}); coutvp.front().first vp.front().second; }右值引用和移动语义左值和右值特征左值 (lvalue)右值 (rvalue)内存地址有确定的内存地址可被取址无稳定地址不可被取址生命周期持久存在表达式结束后依然有效短暂存在通常在当前语句结束后销毁赋值操作通常可放在赋值号左边const左值除外只能放在赋值号右边典型示例变量名、解引用指针*p、数组元素arr[i]、i字面量10、算术表达式ab、函数返回的临时对象、i右值引用就是给右值取别名左值引用不可以直接引用右值const 左值可以使用右值引用const int rx110右值引用不可以直接引用左值右值可以使用move函数给左值引用int rrx1movebmove标记的数据可以被抢夺数据。string s2moves1s1会变空