multiset


class template
<set>

Multiple-key set

Multisets are associative containers with the same properties as set containers, but allowing for multiple keys with equal values.

In their implementation in the C++ Standard Template Library, multiset containers take the same three template parameters as set containers:
1
2
template < class Key, class Compare = less<Key>,
           class Allocator = allocator<Key> > class multiset;

Where the template parameters have the following meanings:
  • Key: Key type: type of the elements contained in the container. Each elements in a multiset is also its key.
  • Compare: Comparison class: A class that takes two arguments of the same type as the container elements and returns a bool. The expression comp(a,b), where comp is an object of this class and a and b are elements of the container, shall return true if a is to be placed at an earlier position than b in a strict weak ordering operation. This can either be a class implementing a function call operator or a pointer to a function (see constructor for an example). This defaults to less<Key>, which returns the same as applying the less-than operator (a<b).
    The multiset object uses this expression to determine the position of the elements in the container. All elements in a multiset container are ordered following this rule at all times.
  • Allocator: Type of the allocator object used to define the storage allocation model. By default, the allocator class template for type Key is used, which defines the simplest memory allocation model and is value-independent.

In the reference for the multiset member functions, these same names (Key, Compare and Allocator) are assumed for the template parameters.

The multiset class template is defined in header <set>.

Member functions



Iterators:


Capacity:


Modifiers:


Observers:


Operations:


Allocator:


Member types

of template <class Key, class Compare=less<Key>, class Allocator=allocator<Key> > class multiset;

member typedefinition
key_typeKey
value_typeKey
key_compareCompare
value_compareCompare
allocator_typeAllocator
referenceAllocator::reference
const_referenceAllocator::const_reference
iteratorBidirectional iterator
const_iteratorConstant bidirectional iterator
size_typeUnsigned integral type (usually same as size_t)
difference_typeSigned integral type (usually same as ptrdiff_t)
pointerAllocator::pointer
const_pointerAllocator::const_pointer
reverse_iteratorreverse_iterator<iterator>
const_reverse_iteratorreverse_iterator<const_iterator>