C++ std::vector同士の連結方法
std::vector v1;
std::vector v2;
~初期化~
v1.insert(v1.end(), v2.begin(), v2.end());
以上としていましたが、
std::copyを使ったほうが良いというコメントをいただきました。
以下の通り修正したものを参考にしてください。
(下記に追記しました。大事なことなのに長い間忘れていて反省しています。)
std::vector v1;
std::vector v2;
~初期化~
std::copy(v2.begin(),v2.end(),std::back_inserter(v1));
追記:
std::copyを使う場合は元のvectorのサイズに注意してください。
あるvectorの後ろに連結させる場合、
連結させたいvectorのサイズが連結先のvectorより小さい場合は良いのですが、
連結させるvectorが連結先のvectorより大きい場合には、
サイズが足りなくなるとメモリを確保し直します。
サイズ差によってはメモリ確保が何度か繰り返されてしまいます。
そのため、場合によりreserve()したほうがいい場合があります。
*場合に応じてどちらが良いかは変わってくるということでよろしくお願いします。