C++/C--多个vector拼接的方法【转载】

#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>  //包含了std::back_inserter的定义
using namespace std;


void printVector(const vector<int> &v)
{
	for (int i = 0; i < v.size(); ++i){
		cout << v[i] << " ";
	}
	cout << endl;
}
int main()
{
	//1、merge
	vector<int> v1 = { 1, 2, 3, 4, 5 };
	vector<int> v2 = { 1, 4, 5, 6, 7 };
	vector<int> v3;
	v3.resize(v1.size() + v2.size());//合并前需要准备空间
	merge(v1.begin(), v1.end(), v2.begin(), v2.end(), v3.begin());
	printVector(v3);//1 1 2 3 4 4 5 5 6 7 

	vector<int> v4;//使用back_inserter不用提前准备空间
	merge(v1.begin(), v1.end(), v2.begin(), v2.end(), back_inserter(v4));

	printVector(v4);//1 1 2 3 4 4 5 5 6 7 
	
	//2、insert
	v2.insert(v2.end(), v1.begin(), v1.end());
	printVector(v2);//1 4 5 6 7 1 2 3 4 5 

	system("pause");

	return 0;
}

merge:将两个有序序列合并成一个新的序列,并对新的序列排序。使用merge函数会进行自动排序。

运行结果:
在这里插入图片描述


以上内容来自:

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页