std::deque<T,Allocator>::assign
De cppreference.com
void assign( size_type count, const T& value ); |
(1) | |
template< class InputIt > void assign( InputIt first, InputIt last ); |
(2) | |
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. También se invalida el iterador después del final.
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. |
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().Ejemplo
El siguiente código usa assign para añadir varios caracteres a std::deque<char>:
Ejecuta este código
#include <deque>
#include <iostream>
int main()
{
std::deque<char> caracteres;
auto imprimir_deque = [&](){
for (char c : caracteres)
std::cout << c << ' ';
std::cout << '\n';
};
caracteres.assign(5, 'a');
imprimir_deque();
{
std::deque<char> extra(6, 'b');
caracteres.assign(extra.begin(), extra.end());
}
imprimir_deque();
caracteres.assign({'C', '+', '+', '2', '0'});
imprimir_deque();
}
Salida:
a a a a a
b b b b b b
C++20
Véase también
Construye el contenedor deque. (función miembro pública) |