【TOJ 1215】数据结构练习题――合并表(vector合并)
程序员文章站
2022-05-04 10:52:54
Description 已知va和vb分别为非递减有序线性表,将va和vb进行合并为新的线性表vc,并保持vc仍然非递减有序。 本题中,线性表元素为整数。线性表的最大长度为1000。 Input 输入数据有多组,第一行为测试数据的组数t,接下来为2t行,每一组测试数据有两行: 第一行的第一个数为va ......
Description
已知va和vb分别为非递减有序线性表,将va和vb进行合并为新的线性表vc,并保持vc仍然非递减有序。
本题中,线性表元素为整数。线性表的最大长度为1000。
Input
输入数据有多组,第一行为测试数据的组数t,接下来为2t行,每一组测试数据有两行:
第一行的第一个数为va的元素个数n,后面是n个整数,代表va的所有元素
第二行的第一个数为vb的元素个数m,后面是m个整数,代表vb的所有元素
Output
输出合并后的长度以及vc的所有元素
Sample input
2
2 1 2
2 2 3
3 1 2 3
3 4 5 6
Sample output
4 1 2 2 3
6 1 2 3 4 5 6
#include<vector> #include<iostream> #include<cstring> #include<algorithm> using namespace std; int main() { vector<int> v1,v2,v3; vector<int>::iterator it; int t,n,m,a,s; cin>>t; while(t--) { s=0; cin>>n; s+=n; while(n--) { scanf("%d",&a); v1.push_back(a); } cin>>m; s+=m; while(m--) { scanf("%d",&a); v2.push_back(a); } v3.insert(v3.end(),v1.begin(),v1.end()); //v1插入v3 v3.insert(v3.end(),v2.begin(),v2.end()); //v2插入v3 sort(v3.begin(),v3.end()); //vector排序 cout<<s; for(it=v3.begin();it!=v3.end();it++) { cout<<" "<<*it; } v1.clear(); v2.clear(); v3.clear(); cout<<endl; } }
下一篇: 阿里图标库iconfont入门使用