我有一個池分配器,我寫作爲練習,它實現了C++ 11 std :: allocator需求啓動並運行,但工作正常,但我使用的策略爲基準(根據以下紙):將固定大小的池池分配器調整到特定的STL容器
https://pdfs.semanticscholar.org/4321/a91d635d023ab25a743c698be219edcdb1a3.pdf
是隻用於一次分配一個單獨的對象成具有足夠的大小,它存儲一個塊非常好。
我注意到std :: allocator模板方法「allocate」有一個參數,其中STL容器可以請求同時分配塊的數量。例如,它看起來像std :: basic_string,一旦超過它在堆棧中保留的特定大小的字符串,通過向分配器請求連續的內存塊以將存儲char數組的內存塊連續移動到堆中拿着整個字符串。 std :: vector的動態擴展似乎以類似的方式工作。
是否有任何方法來調整分配器設計爲返回固定大小的塊大小類型的模板,這種類型的STL容器?
標準分配器需要能夠爲指定數目的模板類型的項目分配連續存儲。 –
您可以提供(可選)成員'size_type max_size()',並在違反時拋出 – Caleth