こんにちは私はベクトルのようにインデックスを付けることができるが、ベクターのようにメモリ内の古い要素を移動しないstlコンテナが必要ですresizeまたはreserve(私はすべての要素、それは私のためには良くない)。 (私は要素へのバインドを扱うので、これらの要素のアドレスは決して変わらないと思います)。だから私はこのくせを見つけました。あなたはそれがこの目的のために良いと思いますか?重要:私はプッシュバックだけが必要ですが、必要に応じてコンテナを小さな塊で成長させる必要があります。私の要素(C++)をstque deque reallocateしますか?
5
A
答えて
10
std::deque
要素の後ろまたは前に要素を追加または削除するときに "ポインタや参照を無効にしない"ので、要素がそのまま残っている場合はpush_back
となります。
3
the documentationを注意深く読んでいるように、最初または最後に挿入する限り、ポインタは無効にならず、ポインタの無効化はデータがコピーまたは移動されていることを示すものです。
構成方法は、リンクされたリストとは異なります。各要素は個別に割り当てられますが、パフォーマンス上の理由からおそらくリンクされた配列のセットです。中間の要素の順序を変更するには、データを移動する必要があります。
+2
配列の配列によく似ています。リンクされた配列は、リンクされたリストよりはるかに優れたトラバーサルを提供しますが、ランダムアクセスはありません。 – Puppy
関連する問題
- 1. C++ push_back 2d deque
- 2. C++ Boost.Rangeのタプル - 要素型のタプルを取得しますか?
- 3. ペア要素のC++検索を設定しますか?
- 4. jQueryは要素の幅を変更しますか?私は
- 5. のDequeポインタメモリリーク
- 6. C++でQML要素を作成しますか?
- 7. ポインタを使用してdequeとC言語でフリー
- 8. Deque(デッキ)質問
- 9. バイナリ検索ではdeque C++データ構造の対数パフォーマンスはありますか?
- 10. Python dequeスコープ?
- 11. deque segfaultエラー
- 12. 他の要素の子要素の下に要素を描画します
- 13. C#XmlSerializer:値を保持し、要素ラベルをオーバーライドします。
- 14. C++私は1つの要素を持つ配列を持っているか配列要素
- 15. はstd :: mapのランダムキー要素をC++で取得します
- 16. XML Objective Cで子要素の解析を解析します
- 17. C++:C++プログラムでshare_ptr要素
- 18. jQuery - jQuery要素として配列から要素を取得しますか?
- 19. Silverlight 3で要素から要素へのバインディングを使用しますか?
- 20. 別の要素の上にdiv要素を配置します
- 21. C++、dequeでオブジェクトを削除するには?
- 22. 配列から要素のセットを削除すると、私は配列から最後の2つの要素を削除しようとしているC++
- 23. 最も内側の要素からのタプルの要素を出力します。
- 24. .xmlファイルの特定の要素をC#のDataGridViewに表示しますか?
- 25. lxmlの - 私は、次のXML要素を持つ要素
- 26. 動的要素リストのフォーム要素を有効にします
- 27. lxml:特定の子要素を持つ要素を取得しますか?
- 28. 要素を別の要素の中央に配置しますか?
- 29. 各要素(LI)の最初の要素(A)にクラスを適用しますか?
- 30. #include Xcode4の<deque>
ありがとうございます!サイズを変更せずにプッシュバックを使用できますか?サイズ変更は要素を移動させる可能性があります。 – user1132655
@ user1132655:確かに、単に 'push_back'。なぜあなたは 'サイズ変更'が必要だと思いますか?それは私にとって早すぎる最適化のように思えます。 –
申し訳ありませんが、私は尋ねたかったのですが、サイズ変更で最適化が要素を変更する可能性があるので、この場合は使用しないでください。 – user1132655