Namespaces
Variants

std::flat_multiset<Key,Compare,KeyContainer>:: insert_range

From cppreference.net

template < container-compatible-range < value_type > R >
void insert_range ( R && rg ) ;
(desde C++23)
(constexpr desde C++26)

Inserta una copia de cada elemento en el rango rg en el contenedor subyacente c como si fuera mediante:

for (const auto& e : rg)
    c.insert(c.end(), e);

Luego, ordena el rango de elementos recién insertados con respecto a compare . Combina el rango ordenado resultante y el rango ordenado de elementos preexistentes en un único rango ordenado.

Cada iterador en el rango rg es desreferenciado exactamente una vez.

Si se satisface cualquiera de las siguientes condiciones, el comportamiento es indefinido:

Contenidos

Parámetros

rg - un rango compatible con contenedor , es decir, un input_range cuyos elementos son convertibles a T

Complejidad

S+N·log(N) , donde S es size ( ) y N es ranges:: distance ( rg ) .

Notas

Dado que insert_range realiza una operación de fusión in situ, puede asignar memoria.

Ejemplo

#include <iostream>
#include <flat_set>
void println(auto, const auto& container)
{
    for (const auto& elem : container)
        std::cout << elem << ' ';
    std::cout << '\n';
}
int main()
{
    auto container = std::flat_multiset{1, 3, 2, 4};
    const auto rg = {-1, 3, -2};
#ifdef __cpp_lib_containers_ranges
    container.insert_range(rg);
#else
    container.insert(rg.begin(), rg.end());
#endif
    println("{}", container);
}

Salida:

-2 -1 1 2 3 3 4

Véase también

inserta elementos
(función miembro pública)