(C++17) | ||||
Sequence | ||||
(C++11) | ||||
(C++26) | ||||
(C++26) | ||||
(C++11) | ||||
Associative | ||||
Unordered associative | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
Adaptors | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
Views | ||||
(C++20) | ||||
(C++23) | ||||
Tables | ||||
Iterator invalidation | ||||
Member function table | ||||
Non-member function table |
flat_multimap() : flat_multimap(key_compare()){} | (1) | (since C++23) |
template<class Allocator> flat_multimap(const flat_multimap&,const Allocator& alloc); | (2) | (since C++23) |
template<class Allocator> flat_multimap( flat_multimap&&,const Allocator& alloc); | (3) | (since C++23) |
flat_multimap( key_container_type key_cont, mapped_container_type mapped_cont, const key_compare& comp= key_compare()); | (4) | (since C++23) |
template<class Allocator> flat_multimap(const key_container_type& key_cont, | (5) | (since C++23) |
template<class Allocator> flat_multimap(const key_container_type& key_cont, | (6) | (since C++23) |
flat_multimap(std::sorted_equivalent_t, key_container_type key_cont, mapped_container_type mapped_cont, | (7) | (since C++23) |
template<class Allocator> flat_multimap(std::sorted_equivalent_t,const key_container_type& key_cont, | (8) | (since C++23) |
template<class Allocator> flat_multimap(std::sorted_equivalent_t,const key_container_type& key_cont, | (9) | (since C++23) |
explicit flat_multimap(const key_compare& comp) : c(), compare(comp){} | (10) | (since C++23) |
template<class Allocator> flat_multimap(const key_compare& comp,const Allocator& alloc); | (11) | (since C++23) |
template<class Allocator> explicit flat_multimap(const Allocator& alloc); | (12) | (since C++23) |
template<class InputIter> flat_multimap( InputIter first, InputIter last, | (13) | (since C++23) |
template<class InputIter,class Allocator> flat_multimap( InputIter first, InputIter last, | (14) | (since C++23) |
template<class InputIter,class Allocator> flat_multimap( InputIter first, InputIter last,const Allocator& alloc); | (15) | (since C++23) |
template<container-compatible-range<value_type> R> flat_multimap(std::from_range_t, R&& rg,const key_compare& comp) | (16) | (since C++23) |
template<container-compatible-range<value_type> R> flat_multimap(std::from_range_t fr, R&& rg) | (17) | (since C++23) |
template<container-compatible-range<value_type> R,class Allocator> flat_multimap(std::from_range_t, R&& rg,const Allocator& alloc); | (18) | (since C++23) |
template<container-compatible-range<value_type> R,class Allocator> flat_multimap(std::from_range_t, R&& rg,const key_compare& comp, | (19) | (since C++23) |
template<class InputIter> flat_multimap(std::sorted_equivalent_t s, InputIter first, InputIter last, | (20) | (since C++23) |
template<class InputIter,class Allocator> flat_multimap(std::sorted_equivalent_t s, InputIter first, InputIter last, | (21) | (since C++23) |
template<class InputIter,class Allocator> flat_multimap(std::sorted_equivalent_t s, InputIter first, InputIter last, | (22) | (since C++23) |
flat_multimap(std::initializer_list<value_type> init, const key_compare& comp= key_compare()) | (23) | (since C++23) |
template<class Allocator> flat_multimap(std::initializer_list<value_type> init,const key_compare& comp, | (24) | (since C++23) |
template<class Allocator> flat_multimap(std::initializer_list<value_type> init,const Allocator& alloc); | (25) | (since C++23) |
flat_multimap(std::sorted_equivalent_t s,std::initializer_list<value_type> init, const key_compare& comp= key_compare()) | (26) | (since C++23) |
template<class Allocator> flat_multimap(std::sorted_equivalent_t s,std::initializer_list<value_type> init, | (27) | (since C++23) |
template<class Allocator> flat_multimap(std::sorted_equivalent_t s,std::initializer_list<value_type> init, | (28) | (since C++23) |
Constructs new container adaptor from a variety of data sources and optionally using user supplied comparison function objectcomp and/or allocatoralloc.
c
with the copy of the contents ofother.c andcompare
withother.compare.Seeallocator usage note below.c.keys
withstd::move(key_cont),c.values
withstd::move(mapped_cont), andcompare
withcomp. Then sorts the underlying range[
begin(),
end())
with respect tovalue_comp().c.keys
withstd::move(key_cont),c.values
withstd::move(mapped_cont), andcompare
withcomp.[
first,
last)
, equivalent toinsert(first, last);.c
with the contents ofrg as if byinsert_range(std::forward<R>(rg));.[
first,
last)
as if byinsert(first, last).Note for overloads(13-15,20-22): If[
first,
last)
is not avalid range, the behavior is undefined.
Contents |
The constructors(2,3,5,6,8,9,11,12,14,15,17,19,21,22,24,25,27,28) are equivalent to the corresponding non-allocator constructors except that the underlying containersc.keys
andc.values
are constructed withuses-allocator construction.These overloads participate in overload resolution only ifstd::uses_allocator_v<container_type, Allocator> istrue.
key_cont | - | a container to be used as source to initialize the underlying keys container |
mapped_cont | - | a container to be used as source to initialize the underlying values container |
other | - | anotherflat_multimap to be used as source to initialize the elements of the underlying containers with |
alloc | - | an allocator to use for all memory allocations of the underlying containers |
comp | - | a function object to be used for all comparisons of keys |
first, last | - | the pair of iterators defining the sourcerange of elements to copy |
init | - | an initializer list to initialize the elements of the underlying containers with |
rg | - | acontainer compatible range (that is, aninput_range whose elements are convertible tovalue_type ) to be used as source to initialize the underlying containers |
fr | - | adisambiguation tag that indicates that the contained member should be range constructed |
s | - | adisambiguation tag that indicates that the input sequence is sorted with respect tovalue_comp() |
Type requirements | ||
-InputIt must meet the requirements ofLegacyInputIterator. | ||
-Compare must meet the requirements ofCompare. | ||
-Allocator must meet the requirements ofAllocator. |
[
first,
last)
is sorted with respect tovalue_comp(), otherwise\(\scriptsize \mathcal{O}(N\cdot\log{(N)})\)𝓞(N·log(N)), where\(\scriptsize N\)N is the value ofkey_cont.size() before this call.[
first,
last)
.Calls toAllocator::allocate
may throw.
After container move construction (overload(3)), references, pointers, and iterators (other than the end iterator) toother remain valid, but refer to elements that are now in*this. The current standard makes this guarantee via the blanket statement in[container.reqmts]/67, and a more direct guarantee is under consideration viaLWG issue 2321.
This section is incomplete Reason: no example |
assigns values to the container adaptor (public member function)[edit] |