std::map<Key,T,Compare,Allocator>::insert_range - cppreference.com
From cppreference.com
|
|
(since C++23) | |
Inserts a copy of each element in the range rg if and only if there is no element with key equivalent to the key of that element in *this.
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::map{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} {4,44}
See also
| inserts elements or nodes(since C++17) (public member function) [edit] |