如果映射,我想添加一个由两个整数值(如 x 和 y 位置)组成的简单类作为键值,我想这样做我需要重载 < 运算符,但由于某种原因我无法正确. 这正是我想挤进去的关键:
struct position {
int x;
int y;
};
如果映射,我想添加一个由两个整数值(如 x 和 y 位置)组成的简单类作为键值,我想这样做我需要重载 < 运算符,但由于某种原因我无法正确. 这正是我想挤进去的关键:
struct position {
int x;
int y;
};
标准方法是将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);
这是通常的方式。
bool operator<(position p, position q)
{
return p.x < q.x || (p.x == q.x && p.y < q.y);
}
它为位置提供了严格的弱排序,这是std::map
. 顺序本身有点随意,但这通常并不重要。