Data
的变量可以用作地图键吗?
struct Data {
Data(int X, int Y) {x=X; y=Y;}
int x; int y;
}
int main()
{
std::map<Data, int> map_;
map_.insert(std::make_pair(Data(1,2), 0)); //error inserting
}
答案 0 :(得分:7)
是的,但您需要为类类型定义operator<
或使用std::map
的自定义比较函数。
There is an example of using a custom comparison function in the STL documentation.
答案 1 :(得分:1)
如果您不想要运算符&lt;,则可以使用boost :: unordered_map。