assign

Syntax:

    #include <list>
    void assign( size_type num, const TYPE& val );
    void assign( input_iterator start, input_iterator end );

The assign() function either gives the current list the values from start to end, or gives it num copies of val.

This function will destroy the previous contents of the list.

For example, the following code uses assign() to put 10 copies of the integer 42 into a list:

   list<int> l;
   l.assign( 10, 42 );
   for( list<int>::iterator iter = l.begin() ; iter != l.end() ; ++iter ) {
     cout << *iter << " ";
   }
   cout << endl;

The above code displays the following output:

   42 42 42 42 42 42 42 42 42 42

The next example shows how assign() can be used to copy one list to another:

   list<int> l1;
   for( int i = 0; i < 10; i++ ) {
     l1.push_back( i );
   }
 
   list<int> l2;
   l2.assign( l1.begin(), l1.end() );
   for( list<int>::iterator iter = l2.begin() ; iter != l2.end() ; ++iter ) {
     cout << *iter << " ";
   }
   cout << endl;

When run, the above code displays the following output:

   0 1 2 3 4 5 6 7 8 9

Related Topics: insert, push_back, push_front