__gnu_debug_def::multiset(3)
NAME
__gnu_debug_def::multiset
SYNOPSIS
Inherits std::multiset< Key, Compare, Allocator >, and __gnu_debug::Safe_sequence< Sequence >< __gnu_debug_def::multiset< Key, Compare, Allocator > >. Public Types typedef Key key_type typedef Key value_type typedef Compare key_compare typedef Compare value_compare typedef Allocator allocator_type typedef Allocator::reference reference typedef Allocator::const_reference const_reference typedef __gnu_debug::Safe_iterator< typename
Base::iterator
typedef __gnu_debug::Safe_iterator< typename
Base::const_iterator
- typedef Base::size_type size_type
typedef Base::difference_type difference_type
typedef Allocator::pointer pointer
typedef Allocator::const_pointer const_pointer typedef std::reverse_iterator< iterator > reverse_iterator typedef std::reverse_iterator< const_iterator > - const_reverse_iterator
- Public Member Functions
- multiset (const Compare &comp=Compare(), const Allocator
- &a=Allocator())
template<typename InputIterator> multiset (InputIterator - first, InputIterator last, const Compare &comp=Compare(), const
- Allocator &a=Allocator())
multiset (const multiset< Key, Compare, Allocator > &x) multiset (const Base &x)Multiset copy constructor. - ~multiset ()
multiset< Key, Compare, Allocator > & operator= (const - multiset< Key, Compare, Allocator > &x)
iterator begin ()
const_iterator begin () const
iterator end ()
const_iterator end () const
reverse_iterator rbegin () const_reverse_iterator rbegin () const reverse_iterator rend ()
const_reverse_iterator rend () const iterator insert (const value_type &x)Inserts an element into the multiset. - iterator insert (iterator position, const value_type &x) template<typename InputIterator> void insert (InputItera
- tor first, InputIterator last)
A template function that attemps to insert a range ofelements.
- void erase (iterator position)
size_type erase (const key_type &x)Erases elements according to the provided key. - void erase (iterator first, iterator last)
void swap (multiset< Key, Compare, Allocator > &x)
void clear ()
iterator find (const key_type &x)Tries to locate an element in a set. - const_iterator find (const key_type &x) const
iterator lower_bound (const key_type &x)
Finds the beginning of a subsequence matching givenkey.
- const_iterator lower_bound (const key_type &x) const
iterator upper_bound (const key_type &x)
Finds the end of a subsequence matching given key.
- const_iterator upper_bound (const key_type &x) const std::pair< iterator, iterator > equal_range (const
- key_type &x)
Finds a subsequence matching given key.
- std::pair< const_iterator, const_iterator > equal_range
- (const key_type &x) const
Base & M_base ()
const Base & M_base () const
key_compare key_comp () constReturns the comparison object. - value_compare value_comp () const
Returns the comparison object.
- allocator_type get_allocator () const
Returns the memory allocation object.
- bool empty () const
Returns true if the set is empty.
- size_type size () const
Returns the size of the set.
- size_type max_size () const
Returns the maximum size of the set.
- void swap (multiset< Key, Compare, Allocator > &x)
Swaps data with another multiset.
- iterator insert (iterator position, const value_type &x)
Inserts an element into the multiset.
- void erase (iterator position)
Erases an element from a multiset.
- void erase (iterator first, iterator last)
Erases a [first,last) range of elements from amultiset.
- size_type count (const key_type &x) const
Finds the number of elements with given key.
- template<typename Predicate> void M_invalidate_if (Predi
- cate pred)
template<typename Iterator> void M_transfer_iter (const - Safe_iterator< Iterator, Sequence > &x)
void M_invalidate_all () const - Public Attributes
- Safe_iterator_base * M_iterators
The list of mutable iterators that reference thiscontainer.
- Safe_iterator_base * M_const_iterators
The list of constant iterators that reference thiscontainer.
- unsigned int M_version
The container version number. This number may never be0.
- Protected Member Functions
- void M_detach_all ()
void M_detach_singular ()
void M_revalidate_singular () void M_swap (Safe_sequence_base &x) - Private Types
- typedef std::multiset< Key, Compare, Allocator > Base typedef __gnu_debug::Safe_sequence< multiset > Safe_base
- Private Member Functions
- void M_invalidate_all ()
Detailed Description
- template<typename Key, typename Compare = std::less<Key>,
- typename Allocator = std::allocator<Key>> class
- __gnu_debug_def::multiset< Key, Compare, Allocator >
- Definition at line 42 of file debug/multiset.h.
Constructor & Destructor Documentation
- template<typename Key, typename Compare = std::less<Key>,
- typename Allocator = std::allocator<Key>>
- __gnu_debug_def::multiset< Key, Compare, Allocator >::multiset
- (const Base & x) [inline]
- Multiset copy constructor.
- Parameters:
x A multiset of identical element and allocator types.
- The newly-created multiset uses a copy of the allocation
- object used by x.
- Reimplemented from std::multiset< Key, Compare, Allocator
- >.
- Definition at line 86 of file debug/multiset.h.
Member Function Documentation
- template<typename Key, typename Compare = std::less<Key>,
- typename Allocator = std::allocator<Key>> const_iterator
- __gnu_debug_def::multiset< Key, Compare, Allocator >::begin ()
- const [inline]
- Returns a read/write iterator that points to the first el
- ement in the multiset. Iteration is done in ascending order ac
- cording to the keys.
- Reimplemented from std::multiset< Key, Compare, Allocator
- >.
- Definition at line 106 of file debug/multiset.h.
- template<typename Key, typename Compare = std::less<Key>,
- typename Allocator = std::allocator<Key>> const_iterator
- __gnu_debug_def::multiset< Key, Compare, Allocator >::end ()
- const [inline]
- Returns a read/write iterator that points one past the
- last element in the multiset. Iteration is done in ascending or
- der according to the keys.
- Reimplemented from std::multiset< Key, Compare, Allocator
- >.
- Definition at line 114 of file debug/multiset.h.
- template<typename Key, typename Compare = std::less<Key>,
- typename Allocator = std::allocator<Key>> const_reverse_iterator
- __gnu_debug_def::multiset< Key, Compare, Allocator >::rbegin ()
- const [inline]
- Returns a read/write reverse iterator that points to the
- last element in the multiset. Iteration is done in descending or
- der according to the keys.
- Reimplemented from std::multiset< Key, Compare, Allocator
- >.
- Definition at line 122 of file debug/multiset.h.
- References __gnu_debug_def::multiset< Key, Compare, Allo
- cator >::end().
- template<typename Key, typename Compare = std::less<Key>,
- typename Allocator = std::allocator<Key>> const_reverse_iterator
- __gnu_debug_def::multiset< Key, Compare, Allocator >::rend ()
- const [inline]
- Returns a read/write reverse iterator that points to the
- last element in the multiset. Iteration is done in descending or
- der according to the keys.
- Reimplemented from std::multiset< Key, Compare, Allocator
- >.
- Definition at line 130 of file debug/multiset.h.
- References __gnu_debug_def::multiset< Key, Compare, Allo
- cator >::begin().
- template<typename Key, typename Compare = std::less<Key>,
- typename Allocator = std::allocator<Key>> iterator
- __gnu_debug_def::multiset< Key, Compare, Allocator >::insert
- (const value_type & x) [inline]
- Inserts an element into the multiset.
- Parameters:
x Element to be inserted.
- Returns:
An iterator that points to the inserted element.
- This function inserts an element into the multiset. Con
- trary to a std::set the multiset does not rely on unique keys and
- thus multiple copies of the same element can be inserted.
- Insertion requires logarithmic time.
- Reimplemented from std::multiset< Key, Compare, Allocator
- >.
- Definition at line 140 of file debug/multiset.h.
- template<typename Key, typename Compare = std::less<Key>,
- typename Allocator = std::allocator<Key>> template<typename
InputIterator> void __gnu_debug_def::multiset< Key, Compare,
Allocator >::insert (InputIterator first, InputIterator last)
- [inline]
A template function that attemps to insert a range of ele - ments.
- Parameters:
- first Iterator pointing to the start of the range to
- be inserted.
last Iterator pointing to the end of the range. - Complexity similar to that of the range constructor.
- Reimplemented from std::multiset< Key, Compare, Allocator
- >.
- Definition at line 152 of file debug/multiset.h.
- template<typename Key, typename Compare = std::less<Key>,
- typename Allocator = std::allocator<Key>> size_type
- __gnu_debug_def::multiset< Key, Compare, Allocator >::erase
- (const key_type & x) [inline]
- Erases elements according to the provided key.
- Parameters:
x Key of element to be erased.
- Returns:
The number of elements erased.
- This function erases all elements located by the given key
- from a multiset. Note that this function only erases the element,
- and that if the element is itself a pointer, the pointed-to memo
- ry is not touched in any way. Managing the pointer is the user's
- responsibilty.
- Reimplemented from std::multiset< Key, Compare, Allocator
- >.
- Definition at line 167 of file debug/multiset.h.
- References __gnu_debug::Safe_iterator< Iterator, Sequence
- >::base(), __gnu_debug_def::multiset< Key, Compare, Allocator
- >::equal_range(), std::pair< T1, T2 >::first, and std::pair< T1,
- T2 >::second.
- template<typename Key, typename Compare = std::less<Key>,
- typename Allocator = std::allocator<Key>> void
- __gnu_debug_def::multiset< Key, Compare, Allocator >::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. Manag
- ing the pointer is the user's responsibilty.
- Reimplemented from std::multiset< Key, Compare, Allocator
- >.
- Definition at line 199 of file debug/multiset.h.
- References __gnu_debug_def::multiset< Key, Compare, Allo
- cator >::begin(), __gnu_debug_def::multiset< Key, Compare, Allo
- cator >::end(), and __gnu_debug_def::multiset< Key, Compare, Al
- locator >::erase().
- template<typename Key, typename Compare = std::less<Key>,
- typename Allocator = std::allocator<Key>> iterator
- __gnu_debug_def::multiset< Key, Compare, Allocator >::find (const
- key_type & x) [inline]
- Tries to locate an element in a set.
- Parameters:
x Element to be located.
- Returns:
Iterator pointing to sought-after element, or end() ifnot found.
- This function takes a key and tries to locate the element
- with which the key matches. If successful the function returns an
- iterator pointing to the sought after element. If unsuccessful it
- returns the past-the-end ( end() ) iterator.
- Reimplemented from std::multiset< Key, Compare, Allocator
- >.
- Definition at line 208 of file debug/multiset.h.
- References std::find().
- template<typename Key, typename Compare = std::less<Key>,
- typename Allocator = std::allocator<Key>> iterator
- __gnu_debug_def::multiset< Key, Compare, Allocator >::lower_bound
- (const key_type & x) [inline]
- Finds the beginning of a subsequence matching given key.
- Parameters:
x Key to be located.
- Returns:
Iterator pointing to first element equal to or greaterthan key, or end().
- This function returns the first element of a subsequence
- of elements that matches the given key. If unsuccessful it re
- turns an iterator pointing to the first element that has a
- greater value than given key or end() if no such element exists.
- Reimplemented from std::multiset< Key, Compare, Allocator
- >.
- Definition at line 220 of file debug/multiset.h.
- References std::lower_bound().
- template<typename Key, typename Compare = std::less<Key>,
- typename Allocator = std::allocator<Key>> iterator
- __gnu_debug_def::multiset< Key, Compare, Allocator >::upper_bound
- (const key_type & x) [inline]
- Finds the end of a subsequence matching given key.
- Parameters:
x Key to be located.
- Returns:
Iterator pointing to the first element greater thankey, or end().
- Reimplemented from std::multiset< Key, Compare, Allocator
- >.
- Definition at line 230 of file debug/multiset.h.
- References std::upper_bound().
- template<typename Key, typename Compare = std::less<Key>,
- typename Allocator = std::allocator<Key>>
- std::pair<iterator,iterator> __gnu_debug_def::multiset< Key,
Compare, Allocator >::equal_range (const key_type & x) [inline]
Finds a subsequence matching given key.
- Parameters:
- x Key to be located.
- Returns:
- Pair of iterators that possibly points to the subse
- quence matching given key.
- This function is equivalent to
std::make_pair(c.lower_bound(val),c.upper_bound(val))- (but is faster than making the calls separately).
- This function probably only makes sense for multisets.
- Reimplemented from std::multiset< Key, Compare, Allocator
- >.
- Definition at line 240 of file debug/multiset.h.
- References std::equal_range(), std::pair< T1, T2 >::first,
- std::make_pair(), and std::pair< T1, T2 >::second.
- Referenced by __gnu_debug_def::multiset< Key, Compare, Al
- locator >::erase().
- key_compare std::multiset< Key , Compare , Allocator
- >::key_comp () const [inline, inherited]
- Returns the comparison object.
- Definition at line 215 of file stl_multiset.h.
- References std::multiset< Key, Compare, Alloc
- >::key_comp().
- value_compare std::multiset< Key , Compare , Allocator
- >::value_comp () const [inline, inherited]
- Returns the comparison object.
- Definition at line 219 of file stl_multiset.h.
- allocator_type std::multiset< Key , Compare , Allocator
- >::get_allocator () const [inline, inherited]
- Returns the memory allocation object.
- Definition at line 223 of file stl_multiset.h.
- bool std::multiset< Key , Compare , Allocator >::empty ()
- const [inline, inherited]
- Returns true if the set is empty.
- Definition at line 264 of file stl_multiset.h.
- size_type std::multiset< Key , Compare , Allocator >::size ()
- const [inline, inherited]
- Returns the size of the set.
- Definition at line 269 of file stl_multiset.h.
- size_type std::multiset< Key , Compare , Allocator
- >::max_size (void) const [inline, inherited]
- Returns the maximum size of the set.
- Definition at line 274 of file stl_multiset.h.
- void std::multiset< Key , Compare , Allocator >::swap
- (multiset< Key , Compare , Allocator > & x) [inline, inherited]
- Swaps data with another multiset.
- Parameters:
x A multiset of the same element and allocator types.
- This exchanges the elements between two multisets in con
- stant time. (It is only swapping a pointer, an integer, and an
- instance of the 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 289 of file stl_multiset.h.
- iterator std::multiset< Key , Compare , Allocator >::insert
- (iterator position, const value_type & x) [inline, inherited]
- Inserts an element into the multiset.
- Parameters:
position An iterator that serves as a hint as to wherethe element should be inserted.
x Element to be inserted. - Returns:
An iterator that points to the inserted element.
- This function inserts an element into the multiset. Con
- trary to a std::set the multiset does not rely on unique keys and
- thus multiple copies of the same element can be inserted.
- Note that the first parameter is only a hint and can po
- tentially improve the performance of the insertion process. A bad
- hint would cause no gains in efficiency.
- See http://gcc.gnu.org/onlinedocs/libstdc++/23_contain
- ers/howto.html#4 for more on 'hinting'.
- Insertion requires logarithmic time (if the hint is not
- taken).
- Definition at line 329 of file stl_multiset.h.
- void std::multiset< Key , Compare , Allocator >::erase
- (iterator position) [inline, inherited]
- Erases an element from a multiset.
- Parameters:
position An iterator pointing to the element to beerased.
- This function erases an element, pointed to by the given
- iterator, from a multiset. Note that this function only erases
- the element, and that if the element is itself a pointer, the
- pointed-to memory is not touched in any way. Managing the pointer
- is the user's responsibilty.
- Definition at line 359 of file stl_multiset.h.
- void std::multiset< Key , Compare , Allocator >::erase
- (iterator first, iterator last) [inline, inherited]
- Erases a [first,last) range of elements from a multiset.
- Parameters:
first Iterator pointing to the start of the range tobe erased.
last Iterator pointing to the end of the range to beerased. - This function erases a sequence of elements from a multi
- set. 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 re
- sponsibilty.
- Definition at line 392 of file stl_multiset.h.
- size_type std::multiset< Key , Compare , Allocator >::count
- (const key_type & x) const [inline, inherited]
- Finds the number of elements with given key.
- Parameters:
x Key of elements to be located.
- Returns:
Number of elements with specified key.
- Definition at line 416 of file stl_multiset.h.
- template<typename Sequence> template<typename Predicate> void
- __gnu_debug::Safe_sequence< Sequence >::M_invalidate_if
- (Predicate pred) [inherited]
- Invalidates all iterators x that reference this sequence,
- are not singular, and for which pred(x) returns true. The user of
- this routine should be careful not to make copies of the itera
- tors passed to pred, as the copies may interfere with the invali
- dation.
- Definition at line 120 of file safe_sequence.h.
- template<typename Sequence> template<typename Iterator> void
- __gnu_debug::Safe_sequence< Sequence >::M_transfer_iter (const
Safe_iterator< Iterator, Sequence > & x) [inherited]
- Transfers all iterators that reference this memory loca
- tion to this sequence from whatever sequence they are attached
- to.
- Definition at line 152 of file safe_sequence.h.
- void __gnu_debug::Safe_sequence_base::M_detach_all ()
- [protected, inherited]
- Detach all iterators, leaving them singular.
- Definition at line 114 of file debug.cc.
- void __gnu_debug::Safe_sequence_base::M_detach_singular ()
- [protected, inherited]
- Detach all singular iterators.
- Postcondition:
for all iterators i attached to this sequence,i->M_version == M_version.
- Definition at line 133 of file debug.cc.
- void __gnu_debug::Safe_sequence_base::M_revalidate_singular ()
- [protected, inherited]
- Revalidates all attached singular iterators. This method
- may be used to validate iterators that were invalidated before
- (but for some reasion, such as an exception, need to become valid
- again).
- Definition at line 154 of file debug.cc.
- void __gnu_debug::Safe_sequence_base::M_swap
- (Safe_sequence_base & x) [protected, inherited]
- Swap this sequence with the given sequence. This operation
- also swaps ownership of the iterators, so that when the operation
- is complete all iterators that originally referenced one contain
- er now reference the other container.
- Definition at line 172 of file debug.cc.
- References __gnu_debug::swap().
- void __gnu_debug::Safe_sequence_base::M_invalidate_all ()
- const [inline, inherited]
- Invalidates all iterators.
- Definition at line 202 of file safe_base.h.
Member Data Documentation
- Safe_iterator_base*
- __gnu_debug::Safe_sequence_base::M_iterators [inherited]
- The list of mutable iterators that reference this contain
- er.
- Definition at line 153 of file safe_base.h.
- Safe_iterator_base*
- __gnu_debug::Safe_sequence_base::M_const_iterators [inherited]
- The list of constant iterators that reference this con
- tainer.
- Definition at line 156 of file safe_base.h.
- unsigned int __gnu_debug::Safe_sequence_base::M_version
- [mutable, inherited]
- The container version number. This number may never be 0.
- Definition at line 159 of file safe_base.h.
Author
- Generated automatically by Doxygen for libstdc++-v3 Source
- from the source code.
- libstdc++-v3 Source 1 Jan 2007 __gnu_de