美文网首页
2017京东关于set集合的编程题

2017京东关于set集合的编程题

作者: XDgbh | 来源:发表于2018-07-16 22:21 被阅读18次
京东真题
#include<iostream>
#include<set>
using namespace std;

int main()
{
    //限制输入测试数据只有5组
    for (int i = 0; i < 5; i++)
    {
        set<int> s_sum;
        int n, m;
        while (cin>>n>>m)
        {
            //循环输入多次,每次都清空集合
            s_sum.clear();
            for (int i = 0; i < n; i++)
            {
                int a;
                cin >> a;
                s_sum.insert(a);
            }
            for (int j = 0; j < m; j++)
            {
                int b;
                cin >> b;
                s_sum.insert(b);
            }
            //输出这一组数据的集合结果
            for (int s:s_sum)
            {
                cout << s << " ";
            }
            cout << endl;
        }
    }
    return 0;
}
  • 若要按照题意,在输入的时候用两个集合A和B接收数据,然后再求{A}+{B},可以这样做:可以设计一个模板函数来表示集合相加。在输出那里,如果要严格考虑每一行最后没有空格而是直接换行,那么也可以完善。
#include<iostream>
#include<set>
using namespace std;
//合并两个集合
template <typename T>
void setAdd(set<T> &a, set<T> &b, set<T> &sum)
{

    for (auto i:a)
    {
        sum.insert(i);
    }
    for (auto j : b)
    {
        sum.insert(j);
    }

}

int main()
{
    for (int i = 0; i<5; i++)
    {
        int a, b;

        while (cin >> a >> b)
        {
            set<int> s_a, s_b, s_sum;
            for (int j = 0; j<a; j++)
            {
                int av;
                cin >> av;
                s_a.insert(av);
            }
            for (int k = 0; k < b; k++)
            {
                int bv;
                cin >> bv;
                s_b.insert(bv);
            }
            setAdd(s_a, s_b, s_sum);
            //int end = *(s_sum.end()); //end()是指向set容器的末尾(空),
          //而不是指向最后一个元素。这样写会报*NULL的解除引用出错
            //cout << "sum集合最后一个元素为:"<<end << endl; //没法得到最后一个元素
            int i = 0, size = s_sum.size();
            for (auto s:s_sum)
            {
                cout << s;
                i++;
                if (i != size)
                {
                    cout << " ";
                }
                else
                {
                    cout << endl;
                }
            }
        }
    }

    return 0;
}

相关文章

网友评论

      本文标题:2017京东关于set集合的编程题

      本文链接:https://www.haomeiwen.com/subject/ngsipftx.html