欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【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;
    }
    
}