DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 
A List Class Library for C++ - List(C++)

Iterating over constant Lists

Frequently it is necessary to iterate over a constant List. (Think of implementing the stream insertion operation for Lists.) Using a Listiter<T> for this is not possible, since Listiter<T> contains operations that change the attached List. In order to make it possible for the user to iterate over a constant List, there is a class Const_listiter. Const_listiter provides all the operations of Listiter, except for the operations that change the attached List. (Listiter is actually derived from Const_listiter.)

Here is an example of iterating over a constant List. The following is the actual definition of stream insertion for List:

   ostream&
   operator<<(ostream& oo, const List<T>& ll) {
       int first = 1;
       oo << "( ";
       Const_listiter<T> l(ll);
       while (!l.at_end()) {
           if (!first)
                   oo << ", ";
           first = 0;
           oo << *(l.next());
       }
       oo << " )";
       return oo;
   }

The class List_of_piter has a similar analogue in Const_list_of_piter.


Next topic: Example
Previous topic: Iterating

© 2005 The SCO Group, Inc. All rights reserved.
SCO OpenServer Release 6.0.0 -- 02 June 2005