std::merge和std::inplace_merge对比分析
一 核心区别
1操作方式
1)std::merge合并两个独立区间到新目标区间 。
2)std::inplace_merge合并同一容器的两个连续有序子区间 。
2 空间复杂度
std::merge需要额外存储空间(目标区间),std::inplace_merge无需额外空间 。
3 参数迭代器要求
std::merge需要输入区间和目标区间的迭代器 , std::inplace_merge为同一容器的迭代器。
二 对比分析
1 std::merge
1)功能
将两个已排序的范围合并到新的目标范围,保持有序。
2)语法
template<class InputIt1, class InputIt2, class OutputIt>
OutputIt merge(InputIt1 first1, InputIt1 last1,InputIt2 first2, InputIt2 last2,
OutputIt d_first);
3)示例
#include <algorithm>
#include <vector>