使用类类型作为映射key_value

cpx*_*cpx 3 c++ stl

变量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
}
Run Code Online (Sandbox Code Playgroud)

Jam*_*lis 7

是的,但您需要operator<为类类型定义或使用自定义比较函数std::map.

有一个在STL文档中使用自定义比较函数的示例.