加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 如何确保订购std :: map?

发布时间:2020-12-16 06:47:06 所属栏目:百科 来源:网络整理
导读:使用std :: map int,...如何确保在插入时,迭代将按整数键的升序进行? 解决方法 你不需要做任何事情.地图将根据键的值按升序排列. 在内部,地图执行键之间的比较以对其元素进行排序.默认情况下,它使用std :: less KEY,这相当于整数的bool运算符(int,int).对于
使用std :: map< int,...>如何确保在插入时,迭代将按整数键的升序进行?

解决方法

你不需要做任何事情.地图将根据键的值按升序排列.

在内部,地图执行键之间的比较以对其元素进行排序.默认情况下,它使用std :: less< KEY>,这相当于整数的bool运算符<(int,int).对于用户定义的类型,您必须选择: >实现bool运算符<(const MyType&,const MyType&),在用户定义的类型之间实现严格的弱排序比较.如果您的类型具有自然顺序,请使用此选项>提供一个实现严格弱排序的二元仿函数,您可以将其作为第三个模板参数传递给地图.如果您的类型没有自然顺序,或者您想要使用与std :: less< Key>使用的顺序不同的顺序构建地图,请使用此选项.通过bool运算符<(...)从第1点开始. 幕后通常发生的是地图被实现为自平衡二叉树,严格的弱排序用于在地图中放置新元素,并确定两个元素是否相等.顺便说一句,相同的逻辑适用于std :: set,其中键和值是同一个.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读