在内部,地图执行键之间的比较以对其元素进行排序.默认情况下,它使用std :: less< KEY>,这相当于整数的bool运算符<(int,int).对于用户定义的类型,您必须选择: >实现bool运算符<(const MyType&,const MyType&),在用户定义的类型之间实现严格的弱排序比较.如果您的类型具有自然顺序,请使用此选项>提供一个实现严格弱排序的二元仿函数,您可以将其作为第三个模板参数传递给地图.如果您的类型没有自然顺序,或者您想要使用与std :: less< Key>使用的顺序不同的顺序构建地图,请使用此选项.通过bool运算符<(...)从第1点开始. 幕后通常发生的是地图被实现为自平衡二叉树,严格的弱排序用于在地图中放置新元素,并确定两个元素是否相等.顺便说一句,相同的逻辑适用于std :: set,其中键和值是同一个.
总结以上是内存溢出为你收集整理的c – 如何确保订购std :: map?全部内容,希望文章能够帮你解决c – 如何确保订购std :: map?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)