こんにちは私はベクトルのようにインデックスを付けることができるが、ベクターのようにメモリ内の古い要素を移動しない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++
- 3. std :: max_element()をC++ 11のstd :: dequeで使用できますか?
- 4. C#XMLファイルの親要素、子要素を特定します
- 5. C++ dequeのような非連続的なコンテナのイテレータは、次の要素を見つける方法
- 6. Javaで古い要素を削除する固定サイズのDequeはありますか?
- 7. C++はデキューからデキューへ要素を移動するときに2倍のメモリを使用します
- 8. C++ Boost.Rangeのタプル - 要素型のタプルを取得しますか?
- 9. C++ dequeイテレータのスマートはどのくらいですか
- 10. ペア要素のC++検索を設定しますか?
- 11. C++は、オーバーロード演算子を持つクラスポインタのdequeを返します。<
- 12. dequeを使用したC++タスクスレッドの競合条件
- 13. C#XDocument要素が親要素の外にあります
- 14. のDequeポインタメモリリーク
- 15. jQueryは要素の幅を変更しますか?私は
- 16. C++でQML要素を作成しますか?
- 17. C#:xmlから要素を削除します。
- 18. 子要素から次の子要素をプレビューします。
- 19. SASSのラッピング要素と親要素を結合しますか?
- 20. バイナリ検索ではdeque C++データ構造の対数パフォーマンスはありますか?
- 21. ポインタを使用してdequeとC言語でフリー
- 22. フォント要素C#
- 23. リバーススタック要素C++
- 24. Deque(デッキ)質問
- 25. Python dequeスコープ?
- 26. deque segfaultエラー
- 27. display:noneの要素をToggleFadeしますか?
- 28. Pythonの別のリストの隣接する要素のリストを作成します
- 29. Deque iterator dereferenceableしない
- 30. Cの行/要素の名前を変更します
ありがとうございます!サイズを変更せずにプッシュバックを使用できますか?サイズ変更は要素を移動させる可能性があります。 – user1132655
@ user1132655:確かに、単に 'push_back'。なぜあなたは 'サイズ変更'が必要だと思いますか?それは私にとって早すぎる最適化のように思えます。 –
申し訳ありませんが、私は尋ねたかったのですが、サイズ変更で最適化が要素を変更する可能性があるので、この場合は使用しないでください。 – user1132655