首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将class作为STL映射键值插入

将class作为STL映射键值插入
EN

Stack Overflow用户
提问于 2013-03-29 04:53:24
回答 2查看 106关注 0票数 1

我想添加一个由两个整数值(如x和y位置)组成的简单类作为map的键值,我想要这样做,我需要重载<运算符,但由于某些原因,我不能正确地完成它。这正是我想要加入的关键:

代码语言:javascript
运行
复制
struct position {
 int x;
 int y;
};
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-29 05:51:19

这是通常的方式。

代码语言:javascript
运行
复制
bool operator<(position p, position q)
{
    return p.x < q.x || (p.x == q.x && p.y < q.y);
}

它为位置提供了严格的弱排序,这是std::map所要求的。顺序本身有点武断,但这通常无关紧要。

票数 0
EN

Stack Overflow用户

发布于 2013-03-29 05:16:02

标准方法是make_pair并将其插入到您的地图中:

代码语言:javascript
运行
复制
map<int,position> ip;
position pos{1,8};
std::pair<int,position> pair=std::make_pair<int,position>(1,pos);
ip.insert(pair);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15691935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档