c++ - 在多个键下将项目存储在 map 中

标签 c++ data-structures

我有一个带有 key_type 和 mapped_type 的 std::map。 mapped_type 的每个实例都作为 3 个拷贝插入到 map 中 - 在 3 个不同的键值下。这允许我根据 3 个键中的任何一个检索值。

但缺点是当我想删除项目时,我需要寻找 3 个键而不是一个,以便删除所有 3 个拷贝。

是否可以将 3 个键组合成一个类,并能够将此类对象与 1 个键进行比较,同时保持严格的弱排序?在这种情况下,operator< 对于 key_type 会是什么样子?

编辑:3 个键的类型相同,例如可以使用 3 个不同的整数值访问单个记录(并且这些键值不被任何其他记录使用)。所以据我所知,Boost.MultiIndex 不是这个问题的解决方案。

最佳答案

关于c++ - 在多个键下将项目存储在 map 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11122804/

相关文章:

c++覆盖数组类的>>运算符

c++ - 通过交换元素使数组相同

python - 如何将Python列表中的数据聚合到字典中?

c++ - 获取随机元素并将其删除

c++ - 如何将结构添加到 STL 列表

c++ - 谷歌 V8 : access local variables in C++

c++ - 如何创建通用动态数组?

c++ - std::cout 字符串不工作

algorithm - 有哪些学习回溯、分支定界和动态规划算法的好资源?

python - 考虑一个整数数组 n A=[a1,a2,a3......an]。查找并打印满足 ai*aj <= max(ai,ai+1,.....aj) 的总对数,其中 i < j