std :: merge和等元素顺序

约翰·卡尔

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

例:

List1有1个元素,AList2有1个元素,B比较器认为A并且B相等。

如果I std::merge(list1.begin(), list1.end(), list2.begin(), list2.end(), out, comparator),是否定义A的相对顺序B

我的意见是,在这种情况下,标准未定义顺序。

Revolver_Ocelot

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

17.6.5.7/1

如果对算法的要求表明它是“稳定的”而无需进一步详细说明,则表示:
—对于合并算法,对于原始两个范围中的等效元素,第一个范围中的元素(保留其原始顺序)位于这些元素之前从第二个范围开始(保留其原始顺序)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章