C++ 将类作为STL映射键值插入

C++ 将类作为STL映射键值插入,c++,C++,我想添加一个由两个整数值(如x和y位置)组成的简单类作为键值if-map,我想为此我需要重载

我想添加一个由两个整数值(如x和y位置)组成的简单类作为键值if-map,我想为此我需要重载<运算符,但由于某些原因,我无法正确获得它。这正是我想挤进去的关键:

struct position {
 int x;
 int y;
};

标准方法是
制作一对
并将其插入地图:

map<int,position> ip;
position pos{1,8};
std::pair<int,position> pair=std::make_pair<int,position>(1,pos);
ip.insert(pair);
map-ip;
位置pos{1,8};
std::pair pair=std::make_pair(1,位置);
插入件(对);
这是通常的方法

bool operator<(position p, position q)
{
    return p.x < q.x || (p.x == q.x && p.y < q.y);
}

bool运算符一种简单的重载方法,即将值包装到
std::pair
s中并比较它们。它已经完成了严格的弱排序部分。您希望映射定义什么映射?什么是键和什么值?键应该是x和y中的一个位置。作为值,我需要另一个int(所以基本上我想给某个位置分配一个数字)。位置是键还是值?x和y中的位置:请决定:p很多,这似乎是我一直在寻找的-顺序在这里并不重要。