如何知道map中的某个元素是第几个

时间:2022-06-14 19:02:51
map中的key 不是1,2,3,.... 
当插入一条记录后,有简捷方法知道是排第几吗?

7 个解决方案

#1


map的实现是红黑树,排第几是没有意义的。

#2


用find函数来定位数据出现位置,它返回的一个迭代器,当数据出现时,它返回数据所在位置的迭代器,如果map中没有要查找的数据,它返回的迭代器等于end函数返回的迭代器

#3


map中的元素是没有顺序的

#4


使用LinkedHashMap,它可以使map遍历的时候采用原先插入是的顺序。

#5


我就是随机插入的,让它排序。但想知道其中任意一个插入后排第几? 

#6


简的方法有,捷的方法无。要么,你换个容器吧,比如自定义的关联型vector。

#7


简洁的方法也是有的,使用distance来获取当前迭代器和begin直接的距离。
只是这样效率不是很高,线性的。

既然用map了就不要想着次序问题了,它们本来就是关联式容器。和次序相关比较大的应用还是用其它容器比较好一些。

#1


map的实现是红黑树,排第几是没有意义的。

#2


用find函数来定位数据出现位置,它返回的一个迭代器,当数据出现时,它返回数据所在位置的迭代器,如果map中没有要查找的数据,它返回的迭代器等于end函数返回的迭代器

#3


map中的元素是没有顺序的

#4


使用LinkedHashMap,它可以使map遍历的时候采用原先插入是的顺序。

#5


我就是随机插入的,让它排序。但想知道其中任意一个插入后排第几? 

#6


简的方法有,捷的方法无。要么,你换个容器吧,比如自定义的关联型vector。

#7


简洁的方法也是有的,使用distance来获取当前迭代器和begin直接的距离。
只是这样效率不是很高,线性的。

既然用map了就不要想着次序问题了,它们本来就是关联式容器。和次序相关比较大的应用还是用其它容器比较好一些。