を私は2つのベクトルを持っているし、1にそれらを結合したい場合、私はそれを次の方法を行うことができます。私は避けしたい、しかし、コピーを伴う「移動」二つのベクトルを一緒
std::vector<T> a(100); // just some random size here
std::vector<T> b(100);
a.insert(std::end(a), std::begin(b), std::end(b));
。移動セマンティクスを併用する方法はありますか?
vector
は連続しているはずなので、私はそれを非常に疑っています。しかし、deque
でそれを行う方法はありますか?あなたが移動イテレータを使用することができ、また
#include <algorithm>
std::move(b.begin(), b.end(), std::back_inserter(a));
を::
ありがとう、今私はなぜcppreferenceに 'std :: move'の二つのバージョンがあるのか知っています。私はいつもそれがバグだと思って、2番目のバージョンをチェックしませんでした。 – inf
私は完全に見逃していました。「動き」もアルゴリズムでした。 – bames53
@ bames53同じことが私には起こりますが、それを聞いた後、それは 'コピー'もあるので完全に意味をなさないでしょう。 – inf