Insert Iterator Adaptors
template <class C>
class PushBackIterator
{
public:
explicit PushBackIterator (C& x) : Cptr(&x) {}
PushBackIterator <C>& operator = (const typename C::value_type& t)
{
Cptr -> PushBack(t);
return *this;
}
PushBackIterator<C>& operator * () {return *this;}
PushBackIterator<C>& operator ++ () {return *this;}
PushBackIterator<C>& operator ++ (int) {return *this;}
protected:
C* Cptr_;
};
// useage:
List < char > L; // declare a list
PushBackIterator < List < char > > Litr(L); // declare a PushBackIterator for L
// yada dada
g_copy(V.Begin(), V.End(), Litr); // inserts entire contents of V to back of L