我更喜欢两种方式:
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); }
你怎么做呢?
如果通过引用发送参数,则第二个示例不起作用。你的意思是
void copyVecFast(vec<int> original) // no reference { vector<int> new_; new_.swap(original); }
那会起作用,但是更简单的方法是
vector<int> new_(original);