Namespaces
Variants

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

De es.cppreference.net

 
 
 
 
void assign( size_type count, const T& value );
(1) (desde C++26)
template< class InputIt >
void assign( InputIt first, InputIt last );
(2) (desde C++26)
void assign( std::initializer_list<T> ilist );
(3) (desde C++11)

Reemplaza el contenido del contenedor.

1) Reemplaza el contenido con count copias del valor value.
2) Reemplaza el contenido con copias de aquellos en el rango [first, last).
Si algún argumento es un iterador dentro de *this, el comportamiento no está definido. Esta sobrecarga participa en la resolución de sobrecarga solo si InputIt satisface LegacyInputIterator.
3) Reemplaza el contenido con los elementos de ilist.


Parámetros

count - el nuevo tamaño del contenedor
value - el valor con el que inicializar los elementos del contenedor
first, last - el par de iteradores que definen el rango fuente de elementos a copiar
ilist - std::initializer_list del que copiar los valores

Complejidad

1) Lineal en count.
2) Lineal en la distancia entre first y last.
3) Lineal en ilist.size().

Ejemplo

El siguiente código utiliza assign para agregar varios caracteres a un std::hive<char>:

#include <hive>
#include <iostream>
#include <string>

int main()
{
    std::hive<char> characters;
    
    auto print_hive = [&]()
    {
        for (char c : characters)
            std::cout << c << ' ';
        std::cout << '\n';
    };
    
    characters.assign(5, 'a');
    print_hive();
    
    const std::string extra(6, 'b');
    characters.assign(extra.begin(), extra.end());
    print_hive();
    
    characters.assign({'C', '+', '+', '2', '6'});
    print_hive();
}

Salida:

a a a a a
b b b b b b
C + + 2 6

Véase también

asigna un rango de valores al contenedor
(función miembro pública)
asigna valores al contenedor
(función miembro pública)