C++中STL中list的merge函数实现两个无序链表合并,合并后的链表是怎么排序的?例如合并1

C++中STL中list的merge函数实现两个无序链表合并,合并后的链表是怎么排序的?例如合并109080706030405060606080合并出来是10304050... C++中STL中list的merge函数实现两个无序链表合并,合并后的链表是怎么排序的?例如合并10 90 80 70 60

30 40 50 60 60 60 80合并出来是10 30 40 50 60 60 60 80 90 80 70 60,是怎样生成的这个顺序的链表?为什么是这么个顺序?
展开
 我来答
chiconysun
2016-04-07 · TA获得超过2.2万个赞
知道大有可为答主
回答量:5410
采纳率:92%
帮助的人:2582万
展开全部
合并的链表需要有序,但是现在是无序的,所以结果是这样的:
首先两个头比较:10<30,因此10排在第一个
接着90和30比,30小,30排在第二个
40和90比,40小。。。
直到第二个链表全部完了,都比90小,这样第一个链表还有元素,接着直接将90连同后面所有元素连过来就是最后的结果(因为默认有序,认为90后面的都比90大,当然实际不是)
imidit
2018-01-23
知道答主
回答量:1
采纳率:0%
帮助的人:908
展开全部
你可以去看list类下的源码,merge默认的是less排序(及从小到大的排序)。
void merge(_Myt& _Right)
{ // merge in elements from _Right, both ordered by operator<
_Merge1(_Right, less<>());
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式