可能重复:
如何将向量转换为数组 C++
使用数组时,您可以使用
memcpy( void *destination, const void *source, size_t num );
然而,向量只是为复制方法提供迭代器,使 memcpy 无用。将矢量内容复制到另一个位置的最快方法是什么?
可能重复:
如何将向量转换为数组 C++
使用数组时,您可以使用
memcpy( void *destination, const void *source, size_t num );
然而,向量只是为复制方法提供迭代器,使 memcpy 无用。将矢量内容复制到另一个位置的最快方法是什么?
您必须自己、在您的环境中、使用您的程序来衡量这一点。任何其他答案都会有太多警告。
当您这样做时,您可以比较以下一种方法:
std::copy(source.begin(), source.end(), destination);
试试这个:-
std::vector<int> newvector(oldvector);
要在数组中复制,请尝试以下操作:-
std::copy(source.begin(), source.end(), destination);
您可以将 memcpy 与向量一起使用 - 保证向量在内存中是连续的,因此只要向量不为空,您就可以使用&vData[0]
(vData
向量在哪里)作为指向的源指针memcpy
编辑正如对其他答案的评论所述,这仅在向量的 value_type 可轻松复制时才有效。