您好我需要一個stl容器,它可以被索引爲一個向量,但不會移動內存中的舊元素,就像一個向量可以調整大小或保留一樣(除非我在一開始就調用一次容量足夠所有元素的保留,這對我不好)。 (注意我的地址綁定了元素,所以我期望這些元素的地址永遠不會改變)。所以我找到了這個德克。你認爲這有利於這個目的嗎?重要提示:我只需要推回,但我需要以小塊形式按需增加容器。將stl deque重新分配我的元素(C++)?
5
A
回答
10
std::deque
「添加或刪除其後部或前部的元素時,永不會使指針或對其餘元素的引用無效」,所以是的,當您只有元素保持原位時。
3
仔細閱讀the documentation似乎表明,只要您在開頭或結尾處插入它就不會使指針無效,並且使指針無效是數據被複制或移動的標誌。
它的構造方式不像鏈接列表,每個元素都是單獨分配的,但是作爲一組鏈接的數組,大概是出於性能原因。改變中間元素的順序將需要移動數據。
+2
更像一個數組數組。鏈接數組提供比鏈接列表更好的遍歷,但沒有隨機訪問。 – Puppy
相關問題
- 1. 查找windbg中stl deque的元素數
- 2. C++ STL Deque search:太慢?
- 3. Array.prototype.for每個重新分配的元素
- 4. STL再分配C++
- 5. 如何重新分配char數組中元素的值C
- 6. C++ STL分配器VS運營商新
- 7. BxSlider - 將滑塊重新分配給不同的元素
- 8. C++ STL問題:分配器
- 9. xml元素的文本沒有重新分配到新值
- 10. 數組重新分配C++
- 11. 將骨幹視圖重新分配給新創建的DOM元素
- 12. 根據元素中的值將元素分配給元素
- 13. C#重新分配類
- 14. 向量重新分配C++
- 15. 將已刪除元素的空間重新分配給Array中的現有新元素Flex
- 16. C++ STL對象的內存分配
- 17. C++符合STL的分配器
- 18. 重新分配的jQuery AJAX能力操縱元素
- 19. 在C++中重載stl :: map的分配器和釋放器
- 20. 清除數組分配新的元素
- 21. 擦除Deque容器的元素
- 22. C++ STL訪問向量元素
- 23. 如何搜索列表元素,STL C++
- 24. 重新分配列表的元素列表
- 25. 將數組的元素重新分配到數據框中的多列
- 26. C++將一個字符串的元素分配給一個新的字符串
- 27. 客觀的c重新分配點
- 28. 分配事件元素被破壞並重新初始化後重新
- 29. 爲Java中的Deque分配大小
- 30. jquery sortable - 在變更時重新分配連續元素ID
謝謝!我可以使用推回沒有調整大小?因爲它可能會調整元素的大小。 – user1132655
@ user1132655:當然,只是'push_back'。你爲什麼認爲你需要調整大小?這聽起來像是對我來說過早的優化。 –
對不起,我想問一下,不能,只是調整大小似乎優化可能會改變我的元素,所以不應該在這種情況下使用它。 – user1132655