将一个向量的内容复制到另一个向量的最快最有效的方法是什么?我想的是矢量大小相对较大并且复制频繁发生的事情。一个假设是矢量大小不会在调用之间变化,并且两个矢量的大小相等。
因此,以下是否存在速度差异?有没有更好的方法呢?
vector<float> v1(100);
vector<float> v2(100);
// case 1
v2 = v1;
// case 2
v2.assign(v1.begin(), v1.end());
// case 3
for(int x = 0; x < v1.size(); x++)
v2[x] = v1[x];
// case 4
memcpy(&v2[0], &v1[0], v1.size()*sizeof(float));