我想要一个 CMap:
CMap<long,long, Cmap<long,long,long,long>>
所以我的数据结构将有一个长作为键,它会重定向到一个值,并且该值将是其中的 long 的 cmap。
示例:如果我收到“1”,它会将我发送到 CMap。
如果我收到 2,它将向我发送不同的 cmap。
这可能吗 ?
不能使用 std/stl 映射。在这个项目中必须使用 MFC CMap 对象。
谢谢。
根据这个答案, aCMap
没有复制构造函数,这就是为什么你不能在另一个中包含一个。但是,您仍然应该能够存储指向 a的指针CMap
。
我认为您在 CMap 中存储的内容没有任何限制,因此您可以这样做,但
我强烈建议您使用标准库容器。它们是标准的,这是有原因的。这使它们更易于维护,并使未来的开发人员更容易阅读代码。MS 也将使用新编译器进行带外 C++ 编译器更新,因此您可以通过在未来重新编译来获得额外的改进。
std::map<long, std::map<long, long> > myMapOfMaps;
编辑:
我检查了 CMap 的标头,@DaveRager 是正确的,没有复制构造函数,所以你唯一的选择是使用长到 CMap* 的 CMap 或使用 std::map。我强烈推荐标准地图。
Edit2:
根据您的声明,您不允许在项目中使用标准库,那么您将不得不求助于 to 的long
映射CMap*
。我建议您与架构师交谈,了解他们为什么不希望您使用标准库集合。一旦您了解了标准集合的设计,它们就会使代码更加简洁易读。
感谢您的回答。
存储指向 CMap 的指针的解决方案可行,但风险太大。
我们使用的另一个可能想到的解决方案是制作包含 CMap 的对象映射。该类将包含标识符和其中的 cmap。意义:
CMap LiveDisconnectionCache;
再次感谢