std::forward_list::assign
De cppreference.com
< cpp | container | forward list
void assign( size_type count, const T& value ); |
(1) | (desde C++11) |
template< class InputIt > void assign( InputIt first, InputIt last ); |
(2) | (desde C++11) |
void assign( std::initializer_list<T> ilist ); |
(3) | (desde C++11) |
Reemplaza el contenido del contenedor
1) Reemplaza el contenido con
count
copias de value
.2) Reemplaza el contenido con las copias del rango
[first, last)
. El comportamiento está indefinido si cualquiera de los argumentos es un iterador a *this
.
Esta sobrecarga tiene el mismo efecto que la sobrecarga (1) si |
(hasta C++11) |
Esta sobrecarga solo participa en la resolución de sobrecargas si |
(desde C++11) |
3) Reemplaza el contenido con los elementos de la lista de inicializadores
ilist
.Se invalidan todos los iteradores, punteros y referencias a los elementos del contenedor.
Contenido |
[editar] Parámetros
count | - | El nuevo tamaño del contenedor. |
value | - | El valor con el cual inicializar los elementos del contenedor. |
first, last | - | El rango del cual copiar los elementos. |
ilist | - | La lista de inicializadores de la cual copiar los elementos. |
[editar] Complejidad
1) Lineal con respecto a
count
.2) Lineal con respecto a la distancia entre
first
y last
.3) Lineal con respecto a ilist.size().
[editar] Ejemplo
El siguiente código usa assign
para añadir varios caracteres a std::forward_list<char>:
Ejecuta este código
#include <forward_list> #include <iostream> int main() { std::forward_list<char> caracteres; auto imprimir_forward_list = [&](){ for (char c : caracteres) std::cout << c << ' '; std::cout << '\n'; }; caracteres.assign(5, 'a'); imprimir_forward_list(); { std::forward_list<char> extra(6, 'b'); caracteres.assign(extra.begin(), extra.end()); } imprimir_forward_list(); caracteres.assign({'C', '+', '+', '2', '0'}); imprimir_forward_list(); }
Salida:
a a a a a b b b b b b C++20
[editar] Véase también
Construye el contenedor forward_list . (función miembro pública) |