我使用的是map-of-maps数据结构,如:
template <typename Key1, typename Key2, typename T>
using MapOfMaps = std::unordered_map<Key1, std::unordered_map<Key2, T>>;
我的问题是每个Key2
的{{1}}值的范围保证是相同的,如果Key1
是一个大对象,那么保持复制可能会非常昂贵键的范围。
因此,这实际上是一个类似矩阵的映射,其中“列”的数量是固定的,但行数可能会增长。容器的必需属性是:
Key2
)。std::tuple<Key1, Key2, T>
的{{1}}进行迭代(例如Key2
)。Key1
个对象范围的一个副本。作为这种结构的一个有些牵强但但是说明性的例子,请考虑:
std::pair<Key2, T>
每个学生必须参加相同的考试。
是否有任何已经实现此类行为的现有容器?如果没有,怎么可能是实现这样一个容器的最佳方法?我的第一个想法是:
Key2
这是实现这个的好方法吗?