关于c++中map的排序问题 20

我知道map是按key值排序的,,如果我想使map按value值排序的话,程序应该怎么写?... 我知道map是按key值排序的,,如果我想使map按value值排序的话,程序应该怎么写? 展开
 我来答
sx_liang
2011-01-04 · TA获得超过214个赞
知道小有建树答主
回答量:233
采纳率:0%
帮助的人:194万
展开全部
嗯。顶楼上两位的发言。我也说一下愚见:
如果你只是想要简单的排序,那么多了。 链表本身的 sort 。 通用库的通用算法:sort();
还有优先队列等。都是有排序功能的。 如果你非得要用 map 键值对,那么我就不明白了,为什么是要拿 value 排序? 如果真的是要先用 map 存数据,然后想 按照 value 排序,我个人觉得不行,还不如再次遍历 map ,将 value 直接放入 优先队列中。。。出来就是有序的了。。。呵呵。。投机的办法,效率低了点,不过很好实现。。。

祝楼主好运。。。。呵呵。。
online66
2013-03-06 · TA获得超过160个赞
知道答主
回答量:183
采纳率:0%
帮助的人:83.7万
展开全部
把值定义为一个结构体,包括你原本的值元素,还有键的值, 这样当你要按照值排序的时候,把map的值也就是结构体放进vector中,剩下的按照你原来的值进行排序就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
翔子菊子
2011-01-03 · TA获得超过4860个赞
知道大有可为答主
回答量:1688
采纳率:100%
帮助的人:822万
展开全部
STL各个容器的使用都是有其应用场景的,MAP的特点就是key值唯一,且默认排序。如果你认为value是你希望的排序原则,那么是否要考虑value作为key?

另外,是否拟的程序定要用map?可以把你想解决的问题说出来,帮你参谋参谋:)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
笋干太咸
2011-01-03
知道答主
回答量:14
采纳率:0%
帮助的人:0
展开全部
这样是不行的,因为key是确定的,而value是可以改动的
如果按value自动排序的话map会变得极不稳定。
你想,如果每次改变value整个map都要重新排序的话不是性能损耗会很大吗?
所以当初压根就没设计按照value排序的功能
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式