![](/img/trans.png)
[英]std::vector::insert vs std::list::operator[]
[英]Performance of std::vector::swap vs std::vector::operator=
给定两个长度相等的向量:
std::vector<Type> vec1;
std::vector<Type> vec2;
如果需要将vec1
vec2
内容,是否更高效
vec2.swap(vec1);
或者
vec2 = vec1;
假设vec1
将保留在 memory 但操作后的内容无关紧要? 另外,有没有我没有考虑过的更有效的方法?
最具表现力的方式,也是最有效的方式,是:
vec2 = std::move(vec1);
在实践中,这可能会使vec1
空,但基本上它只是意味着您不再关心它的内容,您希望将其移至vec2
。
它与交换一样有效,并且比复制分配更有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.