std::vector<T,Allocator>::assign
De cppreference.com
(1) | ||
void assign( size_type count, const T& value ); |
(hasta C++20) | |
constexpr void assign( size_type count, const T& value ); |
(desde C++20) | |
(2) | ||
template< class InputIt > void assign( InputIt first, InputIt last ); |
(hasta C++20) | |
template< class InputIt > constexpr void assign( InputIt first, InputIt last ); |
(desde C++20) | |
(3) | ||
void assign( std::initializer_list<T> ilist ); |
(desde C++11) (hasta C++20) |
|
constexpr void assign( std::initializer_list<T> ilist ); |
(desde C++20) | |
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.
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::vector<char>:
Ejecuta este código
#include <vector> #include <iostream> int main() { std::vector<char> caracteres; auto imprimir_vector = [&](){ for (char c : caracteres) std::cout << c << ' '; std::cout << '\n'; }; caracteres.assign(5, 'a'); imprimir_vector(); { std::vector<char> extra(6, 'b'); caracteres.assign(extra.begin(), extra.end()); } imprimir_vector(); caracteres.assign({'C', '+', '+', '2', '0'}); imprimir_vector(); }
Salida:
a a a a a b b b b b b C++20
[editar] Véase también
Construye el contenedor vector . (función miembro pública) |