地图和自定义分配器的地图

时间:2014-12-05 04:23:48

标签: c++ stl

有没有办法将自定义分配器与地图映射一起使用?

我要说我有:

typedef std::map<int,int> Inner;
typedef std::map<int, Inner> Outer;

我可以为两者设置自定义分配器吗?

我怎么能这样做,因为我无法在内部地图的构造函数中为内部地图定义分配器?

我会做外面的事情:

Allocator myAllocator;
Outer outer(std::less<int>(), myAllocatorObject);

内心??

1 个答案:

答案 0 :(得分:2)

看起来像这样:

typedef std::map<int, int, std::less<int>, SimpleAllocator<std::pair<const int, int>>> Inner;
typedef std::map<int, Inner, std::less<int>, SimpleAllocator<std::pair<const int, Inner>>> Outer;
Inner inner;
Outer outer;

我在这里尝试过一些示例代码并且有效:

http://ideone.com/CuoaiQ


Jonathan Wakely非常精彩的翻拍版本:

http://ideone.com/wBtaks