我是C++新手。這對於「新」集合意味着什麼?例如:C++:「新」一個會不斷增長的集合意味着什麼?
UnicodeStringList* tmp = new UnicodeStringList;
// where UnicodeStringList is typedef to std::list<UnicodeString>
當你「新」的東西,你必須知道究竟有多大,你需要它是吧?因此,當我使用賦值構造函數複製一個對象時,計算機將如何知道應該在堆上分配多少內存?例如:
*tmp = another_string_list;
another_string_list被複制到我的new'd UnicodeStringList在堆內存,但我從來沒有最初指定如何之大,堆內存應該是。編譯器不知道有多大的another_string_list是多少內存進入堆?
我很困惑,希望我指定我的問題足以讓一個人可以理解我,但我不知道。
請幫
感謝,
朱利安
我也想問你爲什麼要堆獨立分配一個列表。大多數人只需要使用列表作爲更大對象的一部分,並且由於您可以隨時更改列表的內容,因此很少需要直接堆分配容器。 – Puppy 2010-07-16 18:09:26