2011-05-04 206 views
1

STL通過爲標準庫保存的內存池中的字符串對象提供內存來優化字符串對象的內存分配。 是否可以禁用此優化?禁用Stl內存優化

我使用VS 2008

+1

如果你告訴我們你爲什麼會想,有一個更大的機會的人可以使用爲您提供替代解決方案。 – falstro 2011-05-04 07:41:20

+0

我在創建STL字符串對象時發生崩潰。但我無法確定問題的根源。有可能由多個線程共享stlstring對象。我想通過爲堆中的每個stl字符串對象分配內存來縮小調試過程 – Maanu 2011-05-04 07:43:52

+0

如果您忽略創建stl :: string對象,您的代碼是否可以正常運行? – asami 2011-05-04 07:52:55

回答

3

不,你不能。從string :: string的C++引用:

除複製構造函數外,對於所有basic_string構造函數都存在可選的最終參數,其類型是其Allocator模板參數。此參數影響要用於該對象的內存分配模型。爲了提供更好的可讀性,並且由於在沒有已知編譯器實現的情況下,字符串(分配器)的內存分配模型受其值的影響,所以尚未包括在上述聲明中,但提前看到基本模板成員聲明更完整的聲明。