将矢量内容复制到数组中的最快方法?

Ste*_*rna 15 c++ vector

可能重复:
如何将向量转换为数组C++

使用数组时,您可以使用

memcpy( void *destination, const void *source, size_t num );
Run Code Online (Sandbox Code Playgroud)

但是,向量只是为复制方法提供迭代器,使memcpy无用.将矢量内容复制到另一个位置的最快方法是什么?

Kon*_*lph 34

std::copy, 把手放下.它经过大量优化,可在内部使用最佳可用方法.因此它完全与之相提并论memcpy.memcpy即使在C风格的数组或内存缓冲区之间进行复制,也没有理由使用它.


Rob*_*obᵩ 12

您必须使用您的程序在您的环境中为自己衡量.任何其他答案都会有太多警告.

当你这样做时,这里有一个你可以比较的方法:

std::copy(source.begin(), source.end(), destination);
Run Code Online (Sandbox Code Playgroud)


Rah*_*thi 7

试试这个:-

  std::vector<int> newvector(oldvector);
Run Code Online (Sandbox Code Playgroud)

要在数组中复制,请尝试以下方法: -

  std::copy(source.begin(), source.end(), destination);
Run Code Online (Sandbox Code Playgroud)

  • -1.Asker想要一个数组,而不是一个新的向量. (2认同)