Operator<< ostream& operator<<(ostream &os, const List &list) { List::ConstIterator b = list.begin(), e = list.end(); if (b != e) { os << *b; ++b; } for (; b != e; ++b) os << ' ' << *b; return os; }