回答
Container類的內存分配由爲其中的每個定義的基礎Allocator
管理。
幾乎所有的成員函數都會分配內存control
。
http://msdn.microsoft.com/en-us/library/k449z507(v=VS.100).aspx
是有限制的,要求由谷歌搜索「矢量成員函數」回答了這個地方的問題。
再次閱讀我的文章,並試圖找出我所問的。謝謝。 – Kobe 2011-03-28 15:36:46
雖然這可能在理論上回答這個問題,[這將是更可取的](http://meta.stackexchange.com/q/8259)在這裏包括答案的基本部分,並提供鏈接供參考。 – NullUserException 2011-12-10 01:46:34
預期的答案,這可能是resize
,reserve
和clear
雖然後者則不實際上控制所分配的內存,它只是不修改底層緩衝區重置「已知」的大小爲零。
所有這些。他們都沒有。這是一個實現細節。 你不知道,也沒關係。
這並不完全正確。當一個向量分配內存時,它將使所有迭代器無效。當它不是時,它只會使迭代器超過參與更改的元素。 – 2011-03-28 15:37:30
您知道,因爲標準指定了重新分配何時發生,並且確實很重要,因爲重新分配使向量內容的所有指針和迭代器無效,並且因爲有時您需要確定性的性能。 – 2011-03-28 17:22:20
默認構造函數可能會或可能不會分配內存。
如果vector最初不是空的,其他構造函數將分配內存,如果它是空的,它可能會也可能不會。如果新的大小或容量超過當前容量
operator=
,assign
,insert
,push_back
,reserve
和resize
將重新分配存儲器中,並且不會以其他方式。
析構函數將釋放任何分配的內存。
沒有其他成員函數會改變內存分配,儘管有些可能會改變或使內存內容無效。
- 1. 矢量矢量(成員)函數指針
- 2. 的std ::類成員函數
- 3. 性能STD矢量c的::內部環路++尺寸()的成員函數
- 4. 通用std ::函數成員
- 5. 使用構造函數的參數初始化矢量成員
- 6. 填充成員矢量
- 7. 從STD的一個矢量::函數
- 8. 如何使用函數列表指向矢量對象中的成員函數?
- 9. 薩姆的std ::矢量<Object>成員C++
- 10. 不是「的std ::矢量成員<_Ty>
- 11. std ::成員函數指針的映射?
- 12. 的std ::綁定模板成員函數
- 13. VS2013的std ::與成員函數功能
- 14. C++ std ::成員函數的線程
- 15. 的std :: ostringstream和沖洗成員函數
- 16. 靜態矢量成員變量
- 17. 加強綁定到矢量的成員函數
- 18. 的std ::矢量<Bar>在Foo類的成員變量需要一個空的構造函數酒吧
- 19. 的std ::變換矢量的矢量
- 20. 到的std ::矢量
- 21. std :: mem_fn帶有ref_qualified成員函數
- 22. C++,C++ 11,std ::原子成員函數
- 23. 在std :: packaged_task中使用成員函數
- 24. 將std :: function分配給成員函數
- 25. 成員函數
- 26. 成員函數的訪問函數成員變量
- 27. 不能調用成員函數沒有對象的矢量shared_ptr的對象
- 28. 如何將成員函數中的矢量傳遞給同一類中的另一個成員?
- 29. 如何修改矢量成員的值?
- 30. 填充std矢量
你如何定義「控制」?重新分配它?更改裏面存儲的值?還有別的嗎? – interjay 2011-03-28 15:32:30
我不確定,這本書中的問題是如何被問到的......我想重新分配 – Kobe 2011-03-28 15:37:44
所以,你不知道你的實際問題是什麼?那爲什麼要問呢? – 2011-03-28 15:41:38