当前位置:  开发笔记 > 编程语言 > 正文

std :: merge和equal element order

如何解决《std::merge和equalelementorder》经验,为你挑选了1个好方法。

std::merge在输入列表中保留相等元素的顺序.它是否保证第一个列表中的元素位于第二个列表中的相等元素之前,或者是否保证仅适用于单个输入列表中的相等元素?

例:

List1有1个元素,A.List2有1个元素,B.比较者认为A并且B是平等的.

如果我std::merge(list1.begin(), list1.end(), list2.begin(), list2.end(), out, comparator)是的相对顺序AB定义的输出?

我的意见是标准在这种情况下没有定义顺序.



1> Revolver_Oce..:

C++ 14标准草案(n3797):

17.6.5.7/1

当算法的要求表明它是"稳定的"而没有进一步详细说明时,它意味着:
- 对于合并算法,对于原始两个范围中的等效元素,来自第一个范围的元素(保留它们的原始顺序)在元素之前从第二个范围(保留其原始顺序).

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有