Syntaxe:
#include <list> void assign( size_type num, const T& val ); void assign( input_iterator inicio, input_iterator fim );
A função assign() atribui à lista num cópias de val ou atribui valores de inicio a fim.
A função destrói o conteúdo anterior da lista.
Por exemplo, o código a seguir usa assign() para colocar 10 cópias do inteiro 42 em uma lista:
list<int> v; list<int>::iterator it; v.assign( 10, 42 ); for( it = v.begin; it!= v.end(); it++ ) { cout << *it << " "; } cout << endl;
O código acima gera a seguinte saída:
42 42 42 42 42 42 42 42 42 42
O próximo exemplo mostra como assign() pode ser usado para copiar um vector para outro:
list<int> v1; for( int i = 0; i < 10; i++ ) { v1.push_back( i ); } list<int> v2; v2.assign( v1.begin(), v1.end() ); list<int>::iterator it; for( it=v2.begin(); it!=v2.end(); it++ ) { cout << *it << " "; } cout << endl;
A saída do código acima é:
0 1 2 3 4 5 6 7 8 9
Tópicos relacionados: insert, push_back, push_front