merge算法有关问题
merge算法问题
这个merge不能对vector和list进行合并吗?
------解决方案--------------------
算法如果操作容器要调用下迭代器适配器吧好像
merge(vec1.begin(), vec1.end(), vec2.begin(), vec2.end(), back_inserter(vec3));
------解决方案--------------------
vector、string、deque都是随机访问迭代器,可以直接用通用的排序算法。
不过你这里有点小问题,因为vec3是空的,所以要用back_inserter插入。
#define _SCL_SECURE_NO_WARNINGS
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
int arr1[] = {1,2,99,4,5};
int arr2[] = {6,7,8,9,10};
vector<int> vec1(arr1, arr1 +2);
vector<int> vec2(arr2, arr2 + 2);
vector<int> vec3;
sort(vec1.begin(), vec1.end());
sort(vec2.begin(), vec2.end());
merge(vec1.begin(), vec1.end(), vec2.begin(), vec2.end(), vec3);
/*int arr3[10];
merge(arr1, arr1 + 5, arr2, arr2 + 5, arr3);*/
}
这个merge不能对vector和list进行合并吗?
merge
------解决方案--------------------
算法如果操作容器要调用下迭代器适配器吧好像
merge(vec1.begin(), vec1.end(), vec2.begin(), vec2.end(), back_inserter(vec3));
------解决方案--------------------
vector、string、deque都是随机访问迭代器,可以直接用通用的排序算法。
不过你这里有点小问题,因为vec3是空的,所以要用back_inserter插入。