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.