C++常用算法merge
Posted YQ编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++常用算法merge相关的知识,希望对你有一定的参考价值。
merge是建立在归并操作上的一种有效的排序算法。它将多个排序列表作为输入并生成单个列表作为输出,包含按排序顺序排列的输入列表的所有元素。
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。
将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。
功能描述:
两个容器元素合并,并存储到另一个容器中
函数原型:
merge(iterator beg1, iterator end1, iterator beg2, iterator end2, iterator dest);
//容器元素合并,并存储到另一个容器中
//注意:两个容器必须是有序的
//beg1 容器1开始迭代器
//end1 容器1结束迭代器
//beg2 容器2开始迭代器
//end2 容器2结束迭代器
//dest 目标容器开始迭代器
代码示例:
using namespace std;
void myPrint(int val)
{
cout << val << " ";
}
void test01()
{
vector<int>v1;
vector<int>v2;
for (int i = 0; i < 10; i++)
{
v1.push_back(i);
v2.push_back(i + 1);
}
//目标容器
vector<int>vTarrget;
//提前给目标容器分配空间
vTarrget.resize(v1.size() + v2.size());
merge(v1.begin(), v1.end(), v2.begin(), v2.end(), vTarrget.begin());
for_each(vTarrget.begin(), vTarrget.end(), myPrint);
cout << endl;
}
int main()
{
test01();
system("pause");
return 0;
}
总结:merge合并的两个容器必须是有序序列
以上是关于C++常用算法merge的主要内容,如果未能解决你的问题,请参考以下文章