std::multimap<Key,T,Compare,Allocator>::insert_range - cppreference.com

From cppreference.com

template< container-compatible-range<value_type> R > void insert_range( R&& rg );

(since C++23)

Inserts a copy of each element in the range rg.

Each iterator in the range rg is dereferenced exactly once. The behavior is undefined if rg overlaps with the container.

No iterators or references are invalidated.

Parameters

Return value

(none)

Complexity

Nยทlog(a.size() + N), where N is ranges::distance(rg).

Notes

Feature-test macro Value Std Feature
__cpp_lib_containers_ranges 202202L (C++23) Ranges-aware construction and insertion

Example

#include <iostream>
#include <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::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);
}

Output:

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

See also

inserts elements or nodes(since C++17)
(public member function) [edit]