有没有办法将自定义分配器与地图映射一起使用?
我要说我有:
typedef std::map<int,int> Inner;
typedef std::map<int, Inner> Outer;
我可以为两者设置自定义分配器吗?
我怎么能这样做,因为我无法在内部地图的构造函数中为内部地图定义分配器?
我会做外面的事情:
Allocator myAllocator;
Outer outer(std::less<int>(), myAllocatorObject);
内心??
答案 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;
我在这里尝试过一些示例代码并且有效:
Jonathan Wakely非常精彩的翻拍版本: