2013-10-04 34 views
0

我需要動態創建對象,並且想使用向量來做到這一點。我明白指向這些對象的指針將存儲在向量中,它們將是連續的,但實際的對象不會。我可以這樣做,如Create objects in pre-allocated memory。不過,我寧願使用矢量。有什麼辦法可以這樣做嗎?使用STL向量連續分配對象

+0

完全一樣的東西。只記得不要改變向量的大小,因爲內存被重新分配,並且會導致所有指向這些對象的指針失效。 –

+2

存儲對象。 –

+1

存儲對象而不是指向你的向量中的指針,它們保證是連續的。 – goji

回答

1

「我需要動態創建對象」

你真的確定你需要動態分配?如果可能的話,使用對象的矢量,而不是:

std::vector<T> myObjects(100); 

這個分配的內存足夠大的單塊持有的T 100個實例,並使用默認的構造函數初始化它們。

+0

他們可能需要,如果他們被操縱多態... – goji

+0

@Troy:但我相信事實並非如此。但我改述了我的回答:) – LihO

0

創建矢量時使用自定義分配器。你的分配器可以按你需要的方式預先分配內存。