我有一个带有 key_type 和 mapped_type 的 std::map。 mapped_type 的每个实例都作为 3 个拷贝插入到 map 中 - 在 3 个不同的键值下。这允许我根据 3 个键中的任何一个检索值。
但缺点是当我想删除项目时,我需要寻找 3 个键而不是一个,以便删除所有 3 个拷贝。
是否可以将 3 个键组合成一个类,并能够将此类对象与 1 个键进行比较,同时保持严格的弱排序?在这种情况下,operator< 对于 key_type 会是什么样子?
编辑:3 个键的类型相同,例如可以使用 3 个不同的整数值访问单个记录(并且这些键值不被任何其他记录使用)。所以据我所知,Boost.MultiIndex 不是这个问题的解决方案。
最佳答案
使用 Boost.MultiIndex。参见 http://www.boost.org/doc/libs/1_49_0/libs/multi_index/doc/tutorial/basics.html#multiple_sort
关于c++ - 在多个键下将项目存储在 map 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11122804/