◐ Shell
clean mode source ↗

std::unordered_multimap<Key,T,Hash,KeyEqual,Allocator>::insert_range - cppreference.com

De cppreference.com

template< rango-compatible-con-contenedores<value_type> R > void insert_range( R&& rg );

(desde C++23)

Inserta una copia de cada elemento en el rango rg.

Cada iterador en el rango rg se desreferencia exactamente una vez. El comportamiento no está definido si rg se superpone con el contenedor.

Parámetros

Valor de retorno

(Ninguno)

Complejidad

Caso promedio O(N), donde N es ranges::distance(rg), en el pero caso O(N·(a.size() + 1)).

Notas

Macro de Prueba de característica Valor Estándar Comentario
__cpp_lib_containers_ranges 202202L (C++23) Construcción e inserción consciente de rangos.

Ejemplo

#include <iostream>
#include <unordered_map>
#include <utility>

void println(auto, auto const& container)
{
    for (const auto& [key, value] : container)
        std::cout << '{' << key << ',' << value << '}' << ' ';
    std::cout << '\n';
}

int main()
{
    auto container = std::unordered_multimap{std::pair{1, 11}, {3, 33}, {2, 22}, {4, 44}};
    const auto rg = {std::pair{-1, -11}, {3, -33}, {-2, -22}};
#ifdef __cpp_lib_containers_ranges
    container.insert_range(rg);
#else
    container.insert(rg.begin(), rg.end());
#endif
    println("{}", container);
}

Posible salida:

{1,11} {-2,-22} {3,-33} {3,33} {2,22} {-1,-11} {4,44}

Véase también

Inserta elementos o nodos (desde C++17)
(función miembro pública) [editar]