2

c++でstl::mapのアロケータ/デアロケータをオーバーロードすることは可能ですか? はいの場合、どのように?どんな助けでも大歓迎です。

4

2 に答える 2

4

はい、テンプレート引数として指定できます。

map<Key, Data, Compare, Alloc>

http://www.sgi.com/tech/stl/Map.htmlおよびhttp://www.sgi.com/tech/stl/Allocators.htmlを参照してください。

于 2011-01-11T10:38:10.490 に答える
3

はい、そうすることは可能です。お気づきの方もいらっしゃると思いますが、すべてのSTLコンテナは、メモリをどこから取得するかを示すテンプレート引数でパラメータ化されています。これは通常、STD :: allocatorタイプで実行されますが、独自のカスタムアロケータを提供することもできます。アロケータの要件にはさまざまな設計上の制限があるため、これを行うのは簡単ではありませんが、そこにはいくつかの優れたリンクがあります。これが1つです:

http://www.roguewave.com/Portals/0/products/sourcepro/docs/11.1/html/toolsug/11-6.html

于 2011-01-11T10:40:08.317 に答える