关于c++中map的排序问题 20
4个回答
展开全部
嗯。顶楼上两位的发言。我也说一下愚见:
如果你只是想要简单的排序,那么多了。 链表本身的 sort 。 通用库的通用算法:sort();
还有优先队列等。都是有排序功能的。 如果你非得要用 map 键值对,那么我就不明白了,为什么是要拿 value 排序? 如果真的是要先用 map 存数据,然后想 按照 value 排序,我个人觉得不行,还不如再次遍历 map ,将 value 直接放入 优先队列中。。。出来就是有序的了。。。呵呵。。投机的办法,效率低了点,不过很好实现。。。
祝楼主好运。。。。呵呵。。
如果你只是想要简单的排序,那么多了。 链表本身的 sort 。 通用库的通用算法:sort();
还有优先队列等。都是有排序功能的。 如果你非得要用 map 键值对,那么我就不明白了,为什么是要拿 value 排序? 如果真的是要先用 map 存数据,然后想 按照 value 排序,我个人觉得不行,还不如再次遍历 map ,将 value 直接放入 优先队列中。。。出来就是有序的了。。。呵呵。。投机的办法,效率低了点,不过很好实现。。。
祝楼主好运。。。。呵呵。。
展开全部
把值定义为一个结构体,包括你原本的值元素,还有键的值, 这样当你要按照值排序的时候,把map的值也就是结构体放进vector中,剩下的按照你原来的值进行排序就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
STL各个容器的使用都是有其应用场景的,MAP的特点就是key值唯一,且默认排序。如果你认为value是你希望的排序原则,那么是否要考虑value作为key?
另外,是否拟的程序定要用map?可以把你想解决的问题说出来,帮你参谋参谋:)
另外,是否拟的程序定要用map?可以把你想解决的问题说出来,帮你参谋参谋:)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样是不行的,因为key是确定的,而value是可以改动的
如果按value自动排序的话map会变得极不稳定。
你想,如果每次改变value整个map都要重新排序的话不是性能损耗会很大吗?
所以当初压根就没设计按照value排序的功能
如果按value自动排序的话map会变得极不稳定。
你想,如果每次改变value整个map都要重新排序的话不是性能损耗会很大吗?
所以当初压根就没设计按照value排序的功能
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询