std :: merge和std :: set_union有什么区别?

rub*_*nvb 9 c++ merge

问题很清楚,我的google-和cplusplus.com/reference-fu让我失望了.

Mat*_*Mat 14

set_union将只包含两个集合中存在的元素.合并将包含它们两次.

两者都在排序范围上工作,并返回排序结果.


CB *_*ley 6

std::merge保留两个范围内的所有元素,来自输出中第二个范围的等效元素之前的第一个范围的等效元素.如果两个范围中出现等效元素,std::set_union则仅获取第一个范围中的元素,否则每个元素按顺序合并std::merge.

参考文献:ISO/IEC 14882:2003 25.3.4 [lib.alg.merge]和25.3.5.2 [lib.set.union].