bsl::unordered_multiset::unordered_multiset

Constructors

Synopses

Declared in <bslstl_unorderedmultiset.h>

Create an empty unordered multiset.

unordered_multiset();
» more...

Create an unordered multiset as a copy of original.

unordered_multiset(unordered_multiset const& original);
» more...

Create an unordered multiset by moving from original.

unordered_multiset(BloombergLP::bslmf::MovableRef<unordered_multiset> original);
» more...

Create an empty unordered multiset using the specified basicAllocator.

explicit
unordered_multiset(ALLOCATOR const& basicAllocator);
» more...

Same as the preceding overload, using the specified allocator.

unordered_multiset(
    size_type initialNumBuckets,
    ALLOCATOR const& basicAllocator);
» more...

Create an unordered multiset by moving from original with basicAllocator.

unordered_multiset(
    BloombergLP::bslmf::MovableRef<unordered_multiset> original,
    ALLOCATOR const& basicAllocator);
» more...

Create a copy of original using basicAllocator.

unordered_multiset(
    unordered_multiset const& original,
    ALLOCATOR const& basicAllocator);
» more...

Create an unordered multiset from the specified values initializer list using basicAllocator.

template<class = void>
requires bsl::IsStdAllocator<ALLOCATOR>::value
unordered_multiset(
    std::initializer_list<KEY> values,
    ALLOCATOR const& basicAllocator);
» more...

Same as the preceding overload, using the specified allocator.

unordered_multiset(
    size_type initialNumBuckets,
    HASH const& hashFunction,
    ALLOCATOR const& basicAllocator);
» more...

Same as the preceding overload, using the specified allocator.

template<class INPUT_ITERATOR>
unordered_multiset(
    INPUT_ITERATOR first,
    INPUT_ITERATOR last,
    ALLOCATOR const& basicAllocator);
» more...

Same as the preceding overload, using the specified allocator.

template<class RANGE>
unordered_multiset(
    std::from_range_t tag,
    RANGE&& range,
    ALLOCATOR const& basicAllocator);
» more...

Same as the preceding overload, using the specified allocator.

template<class = void>
requires bsl::IsStdAllocator<ALLOCATOR>::value
unordered_multiset(
    std::initializer_list<KEY> values,
    size_type initialNumBuckets,
    ALLOCATOR const& basicAllocator);
» more...

Same as the preceding overload, using the specified bucket count and hash/equality functors.

explicit
unordered_multiset(
    size_type initialNumBuckets,
    HASH const& hashFunction = HASH(),
    EQUAL const& keyEqual = EQUAL(),
    ALLOCATOR const& basicAllocator = ALLOCATOR());
» more...

Same as the preceding overload, using the specified allocator.

template<class INPUT_ITERATOR>
unordered_multiset(
    INPUT_ITERATOR first,
    INPUT_ITERATOR last,
    size_type initialNumBuckets,
    ALLOCATOR const& basicAllocator);
» more...

Same as the preceding overload, using the specified allocator.

template<class RANGE>
unordered_multiset(
    std::from_range_t tag,
    RANGE&& range,
    size_type initialNumBuckets,
    ALLOCATOR const& basicAllocator);
» more...

Same as the preceding overload, using the specified allocator.

template<
    class = void,
    class = void>
requires std::is_invocable_v<HASH, const KEY &> && bsl::IsStdAllocator<ALLOCATOR>::value
unordered_multiset(
    std::initializer_list<KEY> values,
    size_type initialNumBuckets,
    HASH const& hashFunction,
    ALLOCATOR const& basicAllocator);
» more...

Same as the preceding overload without a key-equality functor.

template<class INPUT_ITERATOR>
unordered_multiset(
    INPUT_ITERATOR first,
    INPUT_ITERATOR last,
    size_type initialNumBuckets,
    HASH const& hashFunction,
    ALLOCATOR const& basicAllocator);
» more...

Create an unordered multiset from range with hash and allocator.

template<class RANGE>
unordered_multiset(
    std::from_range_t tag,
    RANGE&& range,
    size_type initialNumBuckets,
    HASH const& hashFunction,
    ALLOCATOR const& basicAllocator);
» more...

Create an unordered multiset from the specified values initializer list.

template<
    class = void,
    class = void,
    class = void>
requires std::is_invocable_v<HASH, const KEY &> && std::is_invocable_v<EQUAL, const KEY &, const KEY &> && bsl::IsStdAllocator_v<ALLOCATOR>
unordered_multiset(
    std::initializer_list<KEY> values,
    size_type initialNumBuckets = 0,
    HASH const& hashFunction = HASH(),
    EQUAL const& keyEqual = EQUAL(),
    ALLOCATOR const& basicAllocator = ALLOCATOR());
» more...

Create an unordered multiset from the specified iterator range.

template<class INPUT_ITERATOR>
unordered_multiset(
    INPUT_ITERATOR first,
    INPUT_ITERATOR last,
    size_type initialNumBuckets = 0,
    HASH const& hashFunction = HASH(),
    EQUAL const& keyEqual = EQUAL(),
    ALLOCATOR const& basicAllocator = ALLOCATOR());
» more...

Create an unordered multiset from the specified range.

template<class RANGE>
unordered_multiset(
    std::from_range_t tag,
    RANGE&& range,
    size_type initialNumBuckets = 0,
    HASH const& hashFunction = HASH(),
    EQUAL const& keyEqual = EQUAL(),
    ALLOCATOR const& basicAllocator = ALLOCATOR());
» more...

Parameters

NameDescription
originalunordered multiset to copy
basicAllocatorthe allocator used to supply memory
initialNumBucketsthe initial number of buckets
valuesinitializer list of keys to insert
hashFunctionthe hash function
firstthe start of the iterator range
lastone past the end of the iterator range
tagdisambiguation tag selecting the range constructor
rangeinput range of elements to insert
keyEqualthe key-equality functor