#include
#include
#include
using namespace std;
template
void show_range(const char *msg, InIter start, InIter end);
int main()
{
list list1, list2, result(15);
list::iterator res_end;
for(int i=0; i < 5; i++) {
list1.push_back('A'+i);
}
for(int i=3; i < 10; i++) {
list2.push_back('A'+i);
}
show_range("Contents of list1: ", list1.begin(), list1.end());
show_range("Contents of list2: ", list2.begin(), list2.end());
res_end = set_union(list1.begin(), list1.end(),list2.begin(), list2.end(),result.begin());
show_range("Union of list1 and list2: ", result.begin(), res_end);
return 0;
}
template
void show_range(const char *msg, InIter start, InIter end) {
InIter itr;
cout << msg << endl;
for(itr = start; itr != end; ++itr)
cout << *itr << endl;
}