我有两个 vector :
std::vector<int> v1, v2;
// Filling v1
...
现在我需要将
v1
复制到v2
。有什么理由喜欢v2 = v1;
至
std::copy (v1.begin(), v1.end(), v2.begin());
(或相反亦然)?
最佳答案
通常,我强烈希望v2 = v1
:
std::copy
的长度不等于v2
的长度,那么v1
将不起作用(它不会调整其大小,因此它将保留一些旧元素的最佳情况(v2.size() > v1.size()
并覆盖程序中其他地方使用的一些随机数据) v1
即将过期(并且您使用的是C++ 11),则可以轻松地对其进行修改以对move
内容std::copy
慢,因为如果实现了性能上的好处,实现者可能会在内部使用std::copy
。 总之,
std::copy
的表达能力较差,可能做错了事,甚至没有更快的速度。因此,这里实际上没有任何理由使用它。