2013-11-20 87 views
3

如果我重寫operator new和operator delete(或者傳遞一個自定義的deleter),那麼通過allocator的用途是什麼?在建設和解構的其他時間,shared_ptr是否會進行分配和釋放?我是否需要自定義分配器來共享指針?

+0

是不是真的,如果你提供你的程序內存池,你需要分配和也許你會提供,然後,分配器? IOW,如果我管理自己的記憶,出於某種原因,我會希望系統按照我認爲合適的方式「分配」記憶,也就是說,如果我沒有弄錯,不會抓住大量不必要的空間,對於某些情況。 – ChiefTwoPencils

+0

無論如何,我會寫一個分配器,因爲它是容器需要的。我在這裏問的只是shared_ptr需要分配器的原因,因爲指向已分配內存的指針已經傳遞給構造函數。我應該期望shared_ptrs在幕後分配自己的東西嗎? – Thomas

+0

我可能會小心地說分配器是一般容器所需要的。正如我讀過的那樣,標準允許分配器,但不像您所說的那樣需要。 「隊列」是容器類中的一員,但不要求提供分配器。 – ChiefTwoPencils

回答

相關問題