C++11新增的基本容器要求
表达式 | 返回类型 | 说明 | 复杂度 |
X u(rv) | 调用移动构造函数后,u的值与rv的原始值相同 | 线性 | |
X u = rv | 作用同X u(rv) | ||
a = rv | X& | 调用移动赋值运算符后,u的值与rv的原始值相同 | 线性 |
a.cbegin() | const_iterator | 返回指向容器第一个元素的const迭代器 | 固定 |
a.cend() | const_iterator | 返回超尾值const迭代器 | 固定 |
复制构造和复制赋值以及移动构造和移动赋值之间的差别在于,复制操作保留源对象,而
移动操作可修改源对象,还可能转让所有权,而不做任何复制。
如果源对象是临时的,移动操作的效率将高于常规复制。