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

c – 如何确保订购std :: map?,第1张

概述使用std :: map< int,...>如何确保在插入时,迭代将按整数键的升序进行? 你不需要做任何事情.地图将根据键的值按升序排列. 在内部,地图执行键之间的比较以对其元素进行排序.默认情况下,它使用std :: less< KEY>,这相当于整数的bool运算符<(int,int).对于用户定义的类型,您必须选择: >实现bool运算符<(const MyType&,const MyTyp 使用std :: map< int,...>如何确保在插入时,迭代将按整数键的升序进行?解决方法 你不需要做任何事情.地图将根据键的值按升序排列.

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

总结

以上是内存溢出为你收集整理的c – 如何确保订购std :: map?全部内容,希望文章能够帮你解决c – 如何确保订购std :: map?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1224103.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存