Lecture Notes for CS 509, Advanced Programming II

20 March 2003, Some Iterator Adaptors


Outline


Iterator Adaptors


Some Loopy Code


The Mutating-Algorithm Trap


Insert Iterator Adaptors


Back Insert Iterator Adaptor


Back Inserter Implementation

template < class ContainerT >
back_insert_iterator {

  ContainerT cont

  back_insert_iterator(ContainerT c) 
    : cont(c) { }

  operator = (ContainerT::value_type v)
    cont.push_back(v);

  operator * (void) 
    return * this;

  // similarly for pre and post ++
  }


Back Inserter Pointers


Front Insert Iterator Adaptor


Insert Iterator Adaptor


Insert Iterators vs. Loops


More Loopy Code


Input and Output Iterators


The Output Iterator Adaptor


Output Iterator Operators


Input Iterator Adaptor


The EOS Istream Iterator


Istream Iterator Operators


Istream Iterator Pointers


I-O Stream Iterators vs. Loops


Points to Remember


This page last modified on 20 March 2003.