使用数组时,您可以使用
memcpy( void *destination, const void *source, size_t num );
然而,vector只是为copy方法提供迭代器,使memcpy无用。将矢量内容复制到另一个位置的最快方法是什么?
答案 0 :(得分:34)
答案 1 :(得分:11)
您必须在您的环境中使用您的程序自行衡量。任何其他答案都会有太多警告。
当你这样做时,这里有一个方法,你可以比较:
std::copy(source.begin(), source.end(), destination);
答案 2 :(得分:6)
试试这个: -
std::vector<int> newvector(oldvector);
要复制数组,请尝试: -
std::copy(source.begin(), source.end(), destination);
答案 3 :(得分:3)
你可以使用带有向量的memcpy - 保证向量在内存中是连续的,所以如果向量不为空,你可以使用&vData[0]
(其中vData
是你的向量)作为你的源指向memcpy
编辑正如评论中提到的其他答案一样,只有在矢量的value_type可以轻易复制时才有效。