我想添加一个由两个整数值(如x和y位置)组成的简单类作为map的键值,我想要这样做,我需要重载<运算符,但由于某些原因,我不能正确地完成它。这正是我想要加入的关键:
struct position {
int x;
int y;
};发布于 2013-03-29 05:51:19
这是通常的方式。
bool operator<(position p, position q)
{
return p.x < q.x || (p.x == q.x && p.y < q.y);
}它为位置提供了严格的弱排序,这是std::map所要求的。顺序本身有点武断,但这通常无关紧要。
发布于 2013-03-29 05:16:02
标准方法是make_pair并将其插入到您的地图中:
map<int,position> ip;
position pos{1,8};
std::pair<int,position> pair=std::make_pair<int,position>(1,pos);
ip.insert(pair);https://stackoverflow.com/questions/15691935
复制相似问题