oj|向量的合并

Problem F: 向量的合并 Problem F: 向量的合并 Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 771 Solved: 588
[ Submit][ Status] Description 定义Vec类,是由int类型的数据组成的向量,重载其输入、输出运算符,以及加法运算符。 其中,输入一个整型向量时,输入的是一个非减排序的整数序列,其中包含重复值,在输入时,重复值只保留1个,即Vec类中的向量是递增排序且不含重复值的。 输出时,两两之间用一个空格隔开。 加法运算,将两个Vec类的对象中的整型向量合并为一个不含重复值的递增序列,不能修改两个操作数的值。 【oj|向量的合并】
Input 输入有2行。每行是一个向量。 每行第一个值是一个正整数N>0,表示后面有N个输入的整数。
Output 见样例

Sample Input 10 1 1 1 3 3 3 4 5 8 8
5 1 2 3 4 5

Sample Output
v1:1 3 4 5 8
v2:1 2 3 4 5
v1:1 3 4 5 8
v2:1 2 3 4 5
v3:1 2 3 4 5 8

#include #include #include #include #include #include #include #include using namespace std; class Vec{ public: set c; friend ostream& operator<< (ostream &os, Vec &v){ set::iterator it; it = v.c.begin(); os<<*it; it++; for(it; it!=v.c.end (); it++) { os<<" "<<*it; } os << endl; return os; } friend istream &operator>>(istream &is , Vec &v){ int x; is >> x; int temp =0; for(int i=0; i> temp; v.c.insert(temp); } return is; } friend Vec operator+(Vec &v1,Vec &v2){ Vec s; set::iterator it; for(it = v1.c.begin(); it!=v1.c.end (); it++) { s.c.insert(*it); } for(it = v2.c.begin(); it!=v2.c.end (); it++) { s.c.insert(*it); } return s; } }; int main() { Vec v1, v2, v3; cin>>v1; cin>>v2; cout<<"v1:"<

    推荐阅读