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)
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 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]