在審查我的代碼,我看到一些「醜陋」的結構我用,在一個類(稱爲「地圖」),我有一個包含「數據」類的載體:內存管理和標準::分配器
std::vector<PointerToHUGEClass> vector;
其中PointerToHUGEClass就像名稱所描述的那樣。 (儘管指向的對象也由map類擁有,並且在構造函數中使用「new」參數創建)。這一切都很好(目前)。不過,我仍然認爲這更多的是解決方法。
只有原因我使用「PointerToHUGEClass」而不是「HUGEClass」,是因爲我想確保對象沒有從堆棧中聲明。然而,在我理解分配器之前,我做了這件事。現在我認爲分配器的任務或多或少是確保內存不是從堆棧中聲明的。
我的問題:
- 上午我在承擔分配器糾正負責從項目的內存管理? (並確保它是從stack/freestore/heap/whatever聲明的)
- std :: allocator是做什麼的? - 它是從堆棧還是從堆中聲明?
- (跟上一個問題):如果我將堆棧中聲明的項目複製到數據結構中,它仍然在堆中聲明?再次
感謝, paul23
@Simone:嗯,代碼應讀取`std :: vector`或`std :: vector `感謝您的注意。 (雖然它並沒有真正改變我的問題,但問題總的來說更爲一般,因爲它已經是我一直想知道的一年了) –
paul23
2010-11-23 10:12:55