table of contents
std::multimap::insert_range(3) | C++ Standard Libary | std::multimap::insert_range(3) |
NAME¶
std::multimap::insert_range - std::multimap::insert_range
Synopsis¶
template< container-compatible-range<value_type> R >
(since C++23)
void insert_range( R&& rg );
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¶
rg - a container compatible range, that is, an input_range whose
elements
are convertible to T
Type requirements¶
-
value_type must be EmplaceConstructible into multimap from
*ranges::begin(rg).
Otherwise, the behavior is undefined.
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¶
// Run this code
#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
insert or nodes
(since C++17)
(public member function)
2024.06.10 | http://cppreference.com |