我正在尝试有效地制作 vector 的拷贝。我看到了两种可能的方法:
std::vector<int> copyVecFast1(const std::vector<int>& original)
{
std::vector<int> newVec;
newVec.reserve(original.size());
std::copy(original.begin(), original.end(), std::back_inserter(newVec));
return newVec;
}
std::vector<int> copyVecFast2(std::vector<int>& original)
{
std::vector<int> newVec;
newVec.swap(original);
return newVec;
}
哪些是首选,为什么?我正在寻找能够避免不必要的复制的最有效的解决方案。
最佳答案
但它们不一样,是吗? 一个是拷贝,另一个是交换。因此函数名称。
我最喜欢的是:
a = b;
其中 a
和 b
是 vector 。
关于c++ - 通过保留和复制,还是通过创建和交换来复制 vector 更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/644673/