![]() |
1
21
C++11标准第23.3.6.3/14段规定(关于
换句话说,这意味着
为了满足这一保证,实现通常采用
copy-and-swap idiom
:如果的复制构造函数
但是,如果矢量的先前内容 感动的 而不是被复制到新的存储器中 move构造函数抛出 ,那么我们就会不可逆转地改变向量的原始内容。
因此,实现将使用的复制构造函数
对
|
![]() |
2
5
想想异常保证:如果在重新分配过程中出现异常,向量必须保持不变。这只能通过复制元素并保留旧集来保证,直到整个复制成功为止。
只有知道move构造函数不会抛出,才能安全地将元素移动到新位置。要实现这一点,请声明move构造函数
|
![]() |
apetrai · 我应该如何假设算法使用哪种迭代器类别? 3 年前 |
![]() |
ridiculous_fish · std::是否保证短路? 3 年前 |
![]() |
Fabio · 在c中将指针赋给常数指针++ 3 年前 |
![]() |
johnco3 · 初始化固定C数组成员结构 7 年前 |
![]() |
mans · 为什么出现此错误:constexpr在此处无效 7 年前 |
![]() |
juztcode · 在C++中尝试捕获-创建了多少个对象 7 年前 |
![]() |
Steven Scott · 忽略元素的基于范围的for循环 7 年前 |