哪种方法更快?back_inserter或调整大小

sgo*_*owd 1 c++ stl

我想从类型为uint的向量v1复制到类型为uint的v2.

V1有大约750,000个元素.

选项1:

std::copy(v1.begin(), v1.end(), std::back_inserter(v2));
Run Code Online (Sandbox Code Playgroud)

要么

选项2:

v2.resize(v1.size());
std::copy(v1.begin(), v1.end(),v2.begin());
Run Code Online (Sandbox Code Playgroud)

哪个选项会更快?我们不使用c ++ 11.

谢谢!

Bo *_*son 5

你可能太努力了.:-)

v2.assign(v1.begin(), v1.end());
Run Code Online (Sandbox Code Playgroud)

将工作正常,并根据需要照顾调整大小/储备.