Espacios de nombres
Variantes
Acciones

std::vector<T,Allocator>::assign

De cppreference.com
< cpp‎ | container‎ | vector
 
 
 
 
(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 InputIt es un tipo entero.

(hasta C++11)

Esta sobrecarga solo participa en la resolución de sobrecargas si InputIt satisface a InputIterator.

(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>:

#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)[editar]
close