Lists

Sequence ADT

Implementation as list template class

Constructors

List Operations

Generic Operations

Splicing

Example

    list < int > intlist ( 47 , 8);  // list of 47 ints; each initialized to 8

    list < Rational > ratlist ( 50, Rational (2, 3) );  // list of 50 Rationals; each initialized to 2/3

    list < float > floatlist ( 20 );  // list of 20 floats; each initialized to 0.0

    list :: iterator ibegin = intlist.begin( );

    list :: iterator iend = intlist.end( );

    floatlist.insert ( floatlist.begin( ), ibegin, iend); // inserts entire intlist at beginning of floatlist
                                                                        // each int 8 is converted to float 8.0

    ratlist.push_back( intlist.front( ) );  // inserts first element of intlist at back of ratlist
                                                        // int 8 converted to Rational 8/1 (default constructor argument)

    ratlist.insert ( ratlist.end ( ), 3, 4 );  // inserts 3 copies of Rational 4/1 at end of ratlist

    intlist.erase ( intlist.first( ) + 1 , intlist.last( ) );  // remove all but first element of intlist

    Rational r = ratlist.pop_front ( );  // remove and return first element of ratlist

    Rational* ratarray = new Rational[ ratlist.size( ) ];  // want to copy ratlist into an array

    int index = 0;

    for( list :: iterator i = ratlist.begin( ) ; i != ratlist.end( ) ; i ++ )  // use iterator to traverse
        ratarray [ index++ ] = *i;