std::flat_multiset<Key,Compare,KeyContainer>::flat_multiset
flat_multiset() : flat_multiset(key_compare()) { } |
(1) | (since C++23) |
template< class Allocator > flat_multiset( const flat_multiset& other, const Allocator& alloc ); |
(2) | (since C++23) |
template< class Allocator > flat_multiset( flat_multiset&& other, const Allocator& alloc ); |
(3) | (since C++23) |
explicit flat_multiset( container_type cont, const key_compare& comp = key_compare() ); |
(4) | (since C++23) |
template< class Allocator > flat_multiset( const container_type& cont, const Allocator& alloc ); |
(5) | (since C++23) |
template< class Allocator > flat_multiset( const container_type& cont, const key_compare& comp, |
(6) | (since C++23) |
flat_multiset( std::sorted_equivalent_t s, container_type cont, const key_compare& comp = key_compare() ) |
(7) | (since C++23) |
template< class Allocator > flat_multiset( std::sorted_equivalent_t s, const container_type& cont, |
(8) | (since C++23) |
template< class Allocator > flat_multiset( std::sorted_equivalent_t s, const container_type& cont, |
(9) | (since C++23) |
explicit flat_multiset( const key_compare& comp ) : c(), compare(comp) { } |
(10) | (since C++23) |
template< class Allocator > flat_multiset( const key_compare& comp, const Allocator& alloc ); |
(11) | (since C++23) |
template< class Allocator > explicit flat_multiset( const Allocator& alloc ); |
(12) | (since C++23) |
template< class InputIter > flat_multiset( InputIter first, InputIter last, |
(13) | (since C++23) |
template< class InputIter, class Allocator > flat_multiset( InputIter first, InputIter last, |
(14) | (since C++23) |
template< class InputIter, class Allocator > flat_multiset( InputIter first, InputIter last, const Allocator& alloc ); |
(15) | (since C++23) |
template< container-compatible-range<value_type> R > flat_multiset( std::from_range_t, R&& rg, const key_compare& comp ) |
(16) | (since C++23) |
template< container-compatible-range<value_type> R > flat_multiset( std::from_range_t fr, R&& rg ) |
(17) | (since C++23) |
template< container-compatible-range<value_type> R, class Allocator > flat_multiset( std::from_range_t, R&& rg, const Allocator& alloc ); |
(18) | (since C++23) |
template< container-compatible-range<value_type> R, class Allocator > flat_multiset( std::from_range_t, R&& rg, const key_compare& comp, |
(19) | (since C++23) |
template< class InputIter > flat_multiset( std::sorted_equivalent_t s, InputIter first, InputIter last, |
(20) | (since C++23) |
template< class InputIter, class Allocator > flat_multiset( std::sorted_equivalent_t s, InputIter first, InputIter last, |
(21) | (since C++23) |
template< class InputIter, class Allocator > flat_multiset( std::sorted_equivalent_t s, InputIter first, InputIter last, |
(22) | (since C++23) |
flat_multiset( std::initializer_list<value_type> init, const key_compare& comp = key_compare() ) |
(23) | (since C++23) |
template< class Allocator > flat_multiset( std::initializer_list<value_type> init, const key_compare& comp, |
(24) | (since C++23) |
template< class Allocator > flat_multiset( std::initializer_list<value_type> init, const Allocator& alloc ); |
(25) | (since C++23) |
flat_multiset( 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_multiset( std::sorted_equivalent_t s, std::initializer_list<value_type> init, |
(27) | (since C++23) |
template< class Allocator > flat_multiset( 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 provided comparison function object comp and/or allocator alloc.
c
with the copy of the contents of other.c and compare
with other.compare.
See allocator usage note below.c
with std::move(cont) and compare
with comp. Then sorts the c
with respect to comp
.c
with std::move(cont) and compare
with comp.[
first,
last)
, equivalent to insert(first, last);.c
with the contents of rg as if by insert_range(std::forward<R>(rg));.[
first,
last)
. Initializes c
with c(first, last) and compare
with compare(comp).Note for overloads (13-15,20-22): If [
first,
last)
is not a valid range, the behavior is undefined.
Allocator usage note
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 c
is constructed with uses-allocator construction.
These overloads participate in overload resolution only if std::uses_allocator_v<container_type, Allocator> is true.
Parameters
cont | - | a container to be used as source to initialize the underlying container |
other | - | another flat_multiset to be used as source to initialize the elements of the underlying container with
|
alloc | - | an allocator to use for all memory allocations of the underlying container |
comp | - | a function object to be used for all comparisons of keys |
first, last | - | the pair of iterators defining the source range of elements to copy |
init | - | an initializer list to initialize the elements of the underlying container with |
rg | - | a container compatible range (that is, an input_range whose elements are convertible to value_type ) to be used as source to initialize the underlying container
|
fr | - | a disambiguation tag that indicates that the contained member should be range constructed |
s | - | a disambiguation tag that indicates that the input sequence is sorted with respect to compare
|
Type requirements | ||
-InputIt must meet the requirements of LegacyInputIterator.
| ||
-Compare must meet the requirements of Compare.
| ||
-Allocator must meet the requirements of Allocator.
|
Complexity
[
first,
last)
is sorted with respect to compare, otherwise 𝓞(N·log(N)), where N is the value of cont.size() before this call.[
first,
last)
.Exceptions
Calls to Allocator::allocate
may throw.
Notes
After container move construction (overload (3)), references, pointers, and iterators (other than the end iterator) to other 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 via LWG issue 2321.
Example
This section is incomplete Reason: no example |
See also
assigns values to the container adaptor (public member function) |