重複の可能性:
ベクトルを配列C++に変換する方法
アレイを操作するときは、次を使用することができます
memcpy( void *destination, const void *source, size_t num );
ただし、ベクトルは単にコピーメソッドのイテレータを提供するだけであり、memcpyは役に立たなくなります。内容をベクトルで別の場所にコピーするための最速の方法は何ですか?
重複の可能性:
ベクトルを配列C++に変換する方法
アレイを操作するときは、次を使用することができます
memcpy( void *destination, const void *source, size_t num );
ただし、ベクトルは単にコピーメソッドのイテレータを提供するだけであり、memcpyは役に立たなくなります。内容をベクトルで別の場所にコピーするための最速の方法は何ですか?
あなたはあなた自身のために、あなたの環境で、あなたのプログラムでそれを測定しなければならないでしょう。他の答えには、あまりにも多くの警告があります。
あなたがそれをしている間、あなたが比較することができる1つの方法がここにあります:
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が簡単にコピーできる場合にのみ機能します。