std::vector<T,Allocator>::assign
De cppreference.com
(1) | ||
void assign( size_type count, const T& value ); | (hasta C++20) | |
constexprvoid 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 > constexprvoid assign( InputIt first, InputIt last ); | (desde C++20) | |
(3) | ||
void assign(std::initializer_list<T> ilist ); | (desde C++11) (hasta C++20) | |
constexprvoid 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) |