Meets the requirements of a container, a reversible container, and an associative container (using equivalent keys). For a multiset<Key>
the key_type and value_type are Key.
Multisets support bidirectional iterators.
The private tree data is declared exactly the same way for set and multiset; the distinction is made entirely in how the tree functions are called (*_unique versus *_equal, same as the standard).
Definition at line 89 of file stl_multiset.h.
std::multiset< _Key, _Compare, _Alloc >::multiset | ( | ) | [inline] |
std::multiset< _Key, _Compare, _Alloc >::multiset | ( | const _Compare & | __comp, | |
const allocator_type & | __a = allocator_type() | |||
) | [inline, explicit] |
Creates a multiset with no elements.
comp | Comparator to use. | |
a | An allocator object. |
Definition at line 143 of file stl_multiset.h.
std::multiset< _Key, _Compare, _Alloc >::multiset | ( | _InputIterator | __first, | |
_InputIterator | __last | |||
) | [inline] |
Builds a multiset from a range.
first | An input iterator. | |
last | An input iterator. |
Definition at line 157 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::_M_insert_equal().
std::multiset< _Key, _Compare, _Alloc >::multiset | ( | _InputIterator | __first, | |
_InputIterator | __last, | |||
const _Compare & | __comp, | |||
const allocator_type & | __a = allocator_type() | |||
) | [inline] |
Builds a multiset from a range.
first | An input iterator. | |
last | An input iterator. | |
comp | A comparison functor. | |
a | An allocator object. |
Definition at line 173 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::_M_insert_equal().
std::multiset< _Key, _Compare, _Alloc >::multiset | ( | const multiset< _Key, _Compare, _Alloc > & | __x | ) | [inline] |
Multiset copy constructor.
x | A multiset of identical element and allocator types. |
Definition at line 186 of file stl_multiset.h.
iterator std::multiset< _Key, _Compare, _Alloc >::begin | ( | ) | const [inline] |
Returns a read-only (constant) iterator that points to the first element in the multiset. Iteration is done in ascending order according to the keys.
Definition at line 254 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::begin().
void std::multiset< _Key, _Compare, _Alloc >::clear | ( | ) | [inline] |
Erases all elements in a multiset. Note that this function only erases the elements, and that if the elements themselves are pointers, the pointed-to memory is not touched in any way. Managing the pointer is the user's responsibility.
Definition at line 460 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::clear().
size_type std::multiset< _Key, _Compare, _Alloc >::count | ( | const key_type & | __x | ) | const [inline] |
Finds the number of elements with given key.
x | Key of elements to be located. |
Definition at line 471 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::count().
bool std::multiset< _Key, _Compare, _Alloc >::empty | ( | ) | const [inline] |
Returns true if the set is empty.
Definition at line 324 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::empty().
iterator std::multiset< _Key, _Compare, _Alloc >::end | ( | ) | const [inline] |
Returns a read-only (constant) iterator that points one past the last element in the multiset. Iteration is done in ascending order according to the keys.
Definition at line 263 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::end().
std::pair<iterator, iterator> std::multiset< _Key, _Compare, _Alloc >::equal_range | ( | const key_type & | __x | ) | [inline] |
Finds a subsequence matching given key.
x | Key to be located. |
std::make_pair(c.lower_bound(val), c.upper_bound(val))
This function probably only makes sense for multisets.
Definition at line 551 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::equal_range().
void std::multiset< _Key, _Compare, _Alloc >::erase | ( | iterator | __first, | |
iterator | __last | |||
) | [inline] |
Erases a [first,last) range of elements from a multiset.
first | Iterator pointing to the start of the range to be erased. | |
last | Iterator pointing to the end of the range to be erased. |
Definition at line 450 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::erase().
size_type std::multiset< _Key, _Compare, _Alloc >::erase | ( | const key_type & | __x | ) | [inline] |
Erases elements according to the provided key.
x | Key of element to be erased. |
Definition at line 435 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::erase().
void std::multiset< _Key, _Compare, _Alloc >::erase | ( | iterator | __position | ) | [inline] |
Erases an element from a multiset.
position | An iterator pointing to the element to be erased. |
Definition at line 420 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::erase().
iterator std::multiset< _Key, _Compare, _Alloc >::find | ( | const key_type & | __x | ) | [inline] |
Tries to locate an element in a set.
x | Element to be located. |
end()
) iterator.
Definition at line 489 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::find().
allocator_type std::multiset< _Key, _Compare, _Alloc >::get_allocator | ( | ) | const [inline] |
Returns the memory allocation object.
Definition at line 245 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::get_allocator().
void std::multiset< _Key, _Compare, _Alloc >::insert | ( | _InputIterator | __first, | |
_InputIterator | __last | |||
) | [inline] |
A template function that attempts to insert a range of elements.
first | Iterator pointing to the start of the range to be inserted. | |
last | Iterator pointing to the end of the range. |
Definition at line 406 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::_M_insert_equal().
iterator std::multiset< _Key, _Compare, _Alloc >::insert | ( | iterator | __position, | |
const value_type & | __x | |||
) | [inline] |
Inserts an element into the multiset.
position | An iterator that serves as a hint as to where the element should be inserted. | |
x | Element to be inserted. |
Note that the first parameter is only a hint and can potentially improve the performance of the insertion process. A bad hint would cause no gains in efficiency.
See http://gcc.gnu.org/onlinedocs/libstdc++/23_containers/howto.html#4 for more on "hinting".
Insertion requires logarithmic time (if the hint is not taken).
Definition at line 393 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::_M_insert_equal_().
iterator std::multiset< _Key, _Compare, _Alloc >::insert | ( | const value_type & | __x | ) | [inline] |
Inserts an element into the multiset.
x | Element to be inserted. |
Insertion requires logarithmic time.
Definition at line 369 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::_M_insert_equal().
key_compare std::multiset< _Key, _Compare, _Alloc >::key_comp | ( | ) | const [inline] |
Returns the comparison object.
Definition at line 237 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::key_comp().
iterator std::multiset< _Key, _Compare, _Alloc >::lower_bound | ( | const key_type & | __x | ) | [inline] |
Finds the beginning of a subsequence matching given key.
x | Key to be located. |
Definition at line 510 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::lower_bound().
size_type std::multiset< _Key, _Compare, _Alloc >::max_size | ( | ) | const [inline] |
Returns the maximum size of the set.
Definition at line 334 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::max_size().
multiset& std::multiset< _Key, _Compare, _Alloc >::operator= | ( | const multiset< _Key, _Compare, _Alloc > & | __x | ) | [inline] |
Multiset assignment operator.
x | A multiset of identical element and allocator types. |
Definition at line 209 of file stl_multiset.h.
References std::multiset< _Key, _Compare, _Alloc >::_M_t.
reverse_iterator std::multiset< _Key, _Compare, _Alloc >::rbegin | ( | ) | const [inline] |
Returns a read-only (constant) reverse iterator that points to the last element in the multiset. Iteration is done in descending order according to the keys.
Definition at line 272 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::rbegin().
reverse_iterator std::multiset< _Key, _Compare, _Alloc >::rend | ( | ) | const [inline] |
Returns a read-only (constant) reverse iterator that points to the last element in the multiset. Iteration is done in descending order according to the keys.
Definition at line 281 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::rend().
size_type std::multiset< _Key, _Compare, _Alloc >::size | ( | ) | const [inline] |
Returns the size of the set.
Definition at line 329 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::size().
void std::multiset< _Key, _Compare, _Alloc >::swap | ( | multiset< _Key, _Compare, _Alloc > & | __x | ) | [inline] |
Swaps data with another multiset.
x | A multiset of the same element and allocator types. |
Compare
type (which itself is often stateless and empty), so it should be quite fast.) Note that the global std::swap() function is specialized such that std::swap(s1,s2) will feed to this function.
Definition at line 352 of file stl_multiset.h.
References std::multiset< _Key, _Compare, _Alloc >::_M_t, and std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::swap().
Referenced by std::swap().
iterator std::multiset< _Key, _Compare, _Alloc >::upper_bound | ( | const key_type & | __x | ) | [inline] |
Finds the end of a subsequence matching given key.
x | Key to be located. |
Definition at line 526 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::upper_bound().
value_compare std::multiset< _Key, _Compare, _Alloc >::value_comp | ( | ) | const [inline] |
Returns the comparison object.
Definition at line 241 of file stl_multiset.h.
References std::_Rb_tree< _Key, _Val, _KeyOfValue, _Compare, _Alloc >::key_comp().