私は2つのコンテナを持っています、それらが次のように定義されているとしましょう:
std::vector<std::unique_ptr<int>> a;
std::vector<std::unique_ptr<int>> b;
a両方を想定し、データbが入力されています。move-semanticsを使用して、コンテナ全体a をの特定の場所に挿入したいので、 sはに移動します。のどこかへの有効なイテレータであると仮定しましょう。以下は機能しません。bunique_ptrbib
b.insert(i, a.begin(), a.end()); // error: tries to copy, not move, unique_ptrs
この「移動による挿入範囲」を実現できる別のSTLアルゴリズムはありますか?ある種のが必要だと思いますがemplace_range、VS2010のSTLにはありません。挿入するたびにベクトルの内容全体がシフトアップするため、厄介なO(n ^ 2)になるため、1つずつ挿入するループを記述したくありません。他のオプションはありますか?