编辑代码

#include <iostream>
using namespace std;
#include <vector>
#include <algorithm>
#include <functional>

class myPrint {
public:
    void operator()(int val) {
        cout << val << " ";
    }
};

void test01() {
    vector<int> v1;
    vector<int> v2;
    for (int i = 0; i < 10; i++) {
        v1.push_back(20 - 2 * i);
        v2.push_back(2 * i + 1);
    }

    vector<int> vt;
    vt.resize(v1.size() + v2.size());
    //将v1跟v2一样成为升序 这里也可以使用reverse(如果v1是降序的话)
    sort(v1.begin(), v1.end(), less<int>());

    vector<int>::iterator itEnd = set_union(v1.begin(), v1.end(), 
        v2.begin(), v2.end(), vt.begin());
    for_each (vt.begin(), itEnd, myPrint());
    cout << endl;
}

int main() {
    test01();
	return 0;
}