如何使用2个键值创建地图

时间:2011-10-27 20:21:09

标签: c++

我正在寻找类似学校时间表的东西。基于两个输入 - 一周中的一天和一天中的时间,一个决定主题。为了在c ++中实现这一点,我想到的是“map< pair< int,int>,int>”。 我正在阅读here以使用密钥类和运算符重载。 有没有其他优雅的方式呢?

先谢谢

3 个答案:

答案 0 :(得分:1)

这不是带有两个键的地图(可以让你只从一个键的​​知识中查找项目),它是一个复合键,而map<pair<day, time>, subject>应该可以正常工作。

另请考虑map<day, map<time, subject>>

答案 1 :(得分:0)

你可以输入它。

typedef pair<int, int> key;
map<key, int> myMap = new map<key, int>();

答案 2 :(得分:0)

您无法使用2个键值创建地图,您可以创建具有复杂键值的地图(由两种类型组成)。但是,这不会让你无论何时何时都只看星期几的地图。我会创建一个新类用作键,一些辅助函数可以在一天或一段时间内工作。

另外,对于您的用例Boost.MultiIndex可能对您有所帮助。