一尘不染

将一个向量复制到另一个向量的快速方法

algorithm

我更喜欢两种方式:

void copyVecFast(const vec<int>& original)
{
  vector<int> newVec;
  newVec.reserve(original.size());
  copy(original.begin(),original.end(),back_inserter(newVec));
}

void copyVecFast(vec<int>& original)
{

  vector<int> newVec;
  newVec.swap(original); 
}

你怎么做呢?


阅读 506

收藏
2020-07-28

共1个答案

一尘不染

如果通过引用发送参数,则第二个示例不起作用。你的意思是

void copyVecFast(vec<int> original) // no reference
{

  vector<int> new_;
  new_.swap(original); 
}

那会起作用,但是更简单的方法是

vector<int> new_(original);
2020-07-28