Translations of this page?:

Construtores de Lista

Syntaxe:

    #include <list>
    list();
    list( const list& c );
    list( size_type num, const T& val = T() );
    list( input_iterator inicio, input_iterator fim );
    ~list();

O construtor padrão não recebe nanhum argumento, e cria uma nova instância daquela lista.

O segundo construtor é o construtor padrão de cópia, e pode ser usado para criar uma nova lista que é uma cópia da lista dada c.

O terceiro construtor cria uma lista com espaço para num elementos. Se val for especificado, cada um desses elementos receberá esse valor. Por exemplo, o código abaixo cria uma lista contendo cinco cópias do inteiro 42:

   list <int> l1( 5, 42 );

O último construtor cria uma lista que é inicializad para conter os elementos entre inicio e fim. Por exemplo:

   // create a vector of random integers
   cout << "original list: ";
   list<int> l;
   for( int i = 0; i < 20; i++ ) {
     int num = (int) rand() % 10;
     cout << num << " ";
     l.push_back( num );
   }
   cout << endl;
 
    // delete 5 & 7
   list<int>::iterator iter1 = l.begin();
   while( iter1 != l.end() ) {
     list<int>::iterator thisone = iter1;
     iter1++;
     if ( *thisone == 5 || *thisone == 7 ) {
        cout << "erase " << *thisone << endl;
        l.erase( thisone );
     }
   }
 
    // find the first element of l that is even
   list<int>::iterator iter2 = l.begin();
   while( iter2 != l.end() && *iter2 % 2 != 0 ) {
     iter2++;
   }
 
   // find the last element of l that is even
   list<int>::iterator iter3 = l.end();
   do {
     iter3--;
   } while( iter3 != l.begin() && *iter3 % 2 != 0 );
 
   cout << "first even number: " << *iter2 << ", last even number: " << *iter3 << endl;
 
   cout << "new list: ";
   list<int> l2( iter2, iter3 );
   list<int>::iterator iter4 = l2.begin();
   while( iter4 != l2.end() ) {
     cout << *iter4 << " ";
     iter4++;
   }
   cout << endl;

O código acima resulta na seguinte saída:

  original list: 7 9 3 8 0 2 4 8 3 9 0 5 2 2 7 3 7 9 0 2
  erase 7
   erase 5
   erase 7
   erase 7
   first even number: 8, last even number: 2
   new list: 8 0 2 4 8 3 9 0 2 2 3 9 0

Todos os construtores executam em tempo linear exceto o primeiro, que executa em tempo constante.

O destrutor padrão chama o destrutor de cada objeto na list em tempo constante.

 
• • • SitemapRecent changesRSScc