这主要是STL的使用,之前书看的比较认真的话基本没什么问题
#include <iostream>
#include <set>
#include <algorithm>
#include <iterator>
#include <cstdlib>
#include <string>
int main()
{
std::string temp;
std::set<std::string> Mats;
std::cout << "Enter Mat's guest list (empty line to quit):\n";
while (std::getline(std::cin, temp) && temp.size() > 0)
Mats.insert(temp);
std::ostream_iterator<std::string, char> out(std::cout, "\n");
std::cout << "Mat's guest list:\n";
copy(Mats.begin(), Mats.end(), out);
std::set<std::string> Pats;
std::cout << "Enter Pat's guest list (empty line to quit):\n";
while (std::getline(std::cin, temp) && temp.size() > 0)
Pats.insert(temp);
std::cout << "\nPat's guest list:\n";
copy(Pats.begin(), Pats.end(), out);
std::set<std::string> Both;
set_union(Mats.begin(), Mats.end(), Pats.begin(), Pats.end(),
std::insert_iterator<std::set<std::string> >(Both, Both.begin()));
std::cout << "\nMerged guest list:\n";
copy(Both.begin(), Both.end(), out);
std::cin.get();
return 0;
}