C++11
より前のディープコピーオーバヘッドを避けるために、v
をObjects
に移動するにはどうすればよいですか?swap
の前にスワップツーバックを使用しました。
ここでは、マルチアレイのような回避策がたくさんあること、あるいはObjects.back()
に直接挿入することしか知りませんが、std::move
の使い方の例が必要です。std :: moveを使って
11
A
答えて
16
vector<vector<Object> > Objects;
for(/* some range */)
{
vector<Object> v;
for(/* some other range */)
{
v.push_back(/* some object */);
}
Objects.push_back(std::move(v));
}
17
関連する問題
- 1. std :: move Vs std :: forward
- 2. std :: unique_ptr :: release()vs std :: move()
- 3. std :: sortにmoveコンストラクタとmove-assignmentを使用させるには?
- 4. rvalue refsとstd :: move
- 5. copy対int std :: move for ints
- 6. move ctors /代入演算子でstd :: moveまたはstd :: forwardを使うべきですか?
- 7. 型キャストとstd :: move()の違いは?
- 8. std :: move()の代わりに何が使えますか?
- 9. nullptrの割り当てでstd :: moveを使うべきでしょうか?
- 10. Sを使ってシェイプを移動する:move MXML
- 11. std :: move(x)を返すかしないか?
- 12. なぜstd :: moveはRVOを防ぐのですか?
- 13. スレッドセーフunique_ptr move
- 14. image mouse move with move
- 15. C++ std :: moveはここで悪いですか?
- 16. `std :: move`はここで必要ですか?
- 17. std :: moveは既にT &&の変数に移動します
- 18. g ++ 4.4:iostream move semantics
- 19. なぜstd :: moveがここで失敗しているのでしょうか?
- 20. std :: for_eachまたはstd :: transformを使ってfor-loopを書く方法は?
- 21. C++ - Boost.Promise、Boost.Unique_FutureとMove Semantics
- 22. std :: move()は値をRValuesにどのように転送しますか?
- 23. コピーから回避する関数から値を返すときにstd :: move()を使用する
- 24. std :: setを使ってクラスを格納する方法
- 25. std :: functionを使ってオーバーラップ関数をラップします。
- 26. std :: mapを使って式ツリーを評価する
- 27. std :: string moveコンストラクタが呼び出されなかったのはなぜですか?私はこの例を持っている
- 28. vector、move semantics、nothrow and g ++ 4.7
- 29. Cocoa Move Mouse
- 30. mvcarray on marker move
なぜあなたはまったく 'v'を作成するのですか?空白のベクトルをObjectに追加し、次にObjects.back()。push_back()をそれに追加するだけではどうですか?これにより、より簡単なオーバーヘッドが削除されます。 – Ayjay
@Ayjay:質問の残りの部分を読む – Dani