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

From cppreference.com

template<container-compatible-range<value_type>R>voidinsert_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.

If after the operation the new number of elements is greater than old

max_load_factor()

*

bucket_count()

a rehashing takes place.
If rehashing occurs (due to the insertion), all iterators are invalidated. Otherwise (no rehashing), iterators are not invalidated.

Parameters

Complexity

Average case O(N), where N is ranges::distance(rg), worst case O(N·(a.size()+1)).

Notes

Feature-test

macroValueStdFeature

__cpp_lib_containers_ranges

202202L

(C++23)

Ranges-aware

construction and insertion Example

Run this code

#include<iostream>#include<unordered_set>voidprintln(auto,autoconst&container){for(constauto&elem:container)std::cout<<elem<<' ';std::cout<<'\n';}intmain(){autocontainer=std::unordered_multiset{1,3,2,4};constautorg={-1,3,-2};#ifdef __cpp_lib_containers_rangescontainer.insert_range(rg);#elsecontainer.insert(rg.begin(),rg.end());#endifprintln("{}",container);}Possible output:

1 -2 3 3 2 -1 4 See also

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

[edit]