除了使用emplace进行单次插入和使用向量中的insert进行多次插入之外,它们的实现还有其他不同之处吗?
在两种情况下,插入任何元素都会移动所有其他元素.
Alo*_*ave 10
std::vector::insert 通过调用复制构造函数或移动构造函数将元素复制或移动到容器中.
while,
In std::vector::emplace元素就地构造,即不执行复制或移动操作.
后来是从C++ 11开始引入的,如果复制你的类是一项非常重要的操作,那么它的使用是可取的.
| 归档时间: |
|
| 查看次数: |
10426 次 |
| 最近记录: |