__gnu_debug_def::vector(3)
NAME
__gnu_debug_def::vector
SYNOPSIS
Inherits std::vector< Type, Allocator >, and __gnu_debug::Safe_sequence< Sequence >< __gnu_debug_def::vector<
Type, Allocator > >
- Public Types
- typedef Base::reference reference typedef Base::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 Type value_type
typedef Allocator allocator_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
- vector (const Allocator &a=Allocator())
vector (size_type n, const Type &value=Type(), const Allo - cator &a=Allocator())
template<class InputIterator> vector (InputIterator first, - InputIterator last, const Allocator &a=Allocator())
vector (const vector< Type, Allocator > &x)
vector (const Base &x)Construction from a release-mode vector. - ~vector ()
vector< Type, Allocator > & operator= (const vector< Type, - Allocator > &x)
template<typename InputIterator> void assign (InputItera - tor first, InputIterator last)
Assigns a range to a vector.
- void assign (size_type n, const Type &__u)
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 void resize (size_type sz, Type c=Type()) void reserve (size_type n)
reference operator[] (size_type n) const_reference operator[] (size_type n) const reference front ()
const_reference front () const reference back ()
const_reference back () const
void push_back (const Type &x)Add data to the end of the vector. - void pop_back ()
Removes last element.
- iterator insert (iterator position, const Type &x) void insert (iterator position, size_type n, const Type
- &x)
template<class InputIterator> void insert (iterator posi - tion, InputIterator first, InputIterator last)
iterator erase (iterator position) iterator erase (iterator first, iterator last) void swap (vector< Type, Allocator > &x)
void clear ()
Base & M_base ()
const Base & M_base () const
void assign (size_type n, const value_type &__val)Assigns a given value to a vector. - size_type size () const
size_type max_size () const
void resize (size_type new_size, const value_type &x)Resizes the vector to the specified number ofelements. - void resize (size_type new_size)
Resizes the vector to the specified number ofelements.
- size_type capacity () const
bool empty () const
void reserve (size_type n)Attempt to preallocate enough memory for specifiednumber of elements. - reference operator[] (size_type n)
Subscript access to the data contained in the vector.
- const_reference operator[] (size_type n) const
Subscript access to the data contained in the vector.
- reference at (size_type n)
Provides access to the data contained in the vector.
- const_reference at (size_type n) const
Provides access to the data contained in the vector.
- iterator insert (iterator position, const value_type &x)
Inserts given value into vector before specifiediterator.
- void insert (iterator position, size_type n, const
- value_type &x)
Inserts a number of copies of given data into thevector.
- void insert (iterator position, InputIterator first, In
- putIterator last)
Inserts a range into the vector.
- iterator erase (iterator position)
Remove element at given position.
- iterator erase (iterator first, iterator last)
Remove a range of elements.
- void swap (vector &x)
Swaps data with another vector.
- 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_range_check (size_type n) const pointer M_allocate_and_copy (size_type n, ForwardIterator
- first, ForwardIterator last)
void M_initialize_dispatch (Integer n, Integer value, - __true_type)
void M_initialize_dispatch (InputIterator first, InputIt - erator last, __false_type)
void M_range_initialize (InputIterator first, InputItera - tor last, input_iterator_tag)
void M_range_initialize (ForwardIterator first, ForwardIt - erator last, forward_iterator_tag)
void M_assign_dispatch (Integer n, Integer __val, - __true_type)
void M_assign_dispatch (InputIterator first, InputIterator - last, __false_type)
void M_insert_dispatch (iterator position, Integer n, In - teger __val, __true_type)
void M_insert_dispatch (iterator position, InputIterator - first, InputIterator last, __false_type)
allocator_type get_allocator () const Type * M_allocate (size_t n)
void M_deallocate (Type *__p, size_t n)
void M_detach_all ()
void M_detach_singular ()
void M_revalidate_singular () void M_swap (Safe_sequence_base &x) - Protected Attributes
- Vector_impl M_impl
- Private Types
- typedef std::vector< Type, Allocator > Base typedef __gnu_debug::Safe_sequence< vector > Safe_base typedef Base::const_iterator Base_const_iterator typedef __gnu_debug::After_nth_from< Base_const_iterator >
After_nth
- Private Member Functions
- bool M_requires_reallocation (size_type __elements) void M_update_guaranteed_capacity ()
- Private Attributes
- size_type M_guaranteed_capacity
Detailed Description
- template<typename Type, typename Allocator =
- std::allocator<Type>> class __gnu_debug_def::vector< Type,
Allocator >
Definition at line 43 of file debug/vector.
Constructor & Destructor Documentation
- template<typename Type, typename Allocator =
- std::allocator<Type>> __gnu_debug_def::vector< Type, Allocator
- >::vector (const Base & x) [inline]
- Construction from a release-mode vector.
- Definition at line 92 of file debug/vector.
- template<typename Type, typename Allocator =
- std::allocator<Type>> __gnu_debug_def::vector< Type, Allocator
- >::~vector () [inline]
- The dtor only erases the elements, and note that if the
- elements themselves are pointers, the pointed-to memory is not
- touched in any way. Managing the pointer is the user's responsi
- bilty.
- Reimplemented from std::vector< Type, Allocator >.
- Definition at line 95 of file debug/vector.
Member Function Documentation
- template<typename Type, typename Allocator =
- std::allocator<Type>> template<typename InputIterator> void
- __gnu_debug_def::vector< Type, Allocator >::assign (InputIterator
- first, InputIterator last) [inline]
- Assigns a range to a vector.
- Parameters:
first An input iterator.
last An input iterator. - This function fills a vector with copies of the elements
- in the range [first,last).
- Note that the assignment completely changes the vector and
- that the resulting vector's size is the same as the number of el
- ements assigned. Old data may be lost.
- Reimplemented from std::vector< Type, Allocator >.
- Definition at line 108 of file debug/vector.
- template<typename Type, typename Allocator =
- std::allocator<Type>> iterator __gnu_debug_def::vector< Type,
Allocator >::begin () [inline]
- Returns a read/write iterator that points to the first el
- ement in the vector. Iteration is done in ordinary element order.
- Reimplemented from std::vector< Type, Allocator >.
- Definition at line 128 of file debug/vector.
- Referenced by __gnu_debug_def::vector< Type, Allocator
- >::erase(), __gnu_debug_def::vector< Type, Allocator >::insert(),
- __gnu_debug_def::vector< Type, Allocator >::rend(), and __gnu_de
- bug_def::vector< Type, Allocator >::resize().
- template<typename Type, typename Allocator =
- std::allocator<Type>> const_iterator __gnu_debug_def::vector<
Type, Allocator >::begin () const [inline]
- Returns a read-only (constant) iterator that points to the
- first element in the vector. Iteration is done in ordinary ele
- ment order.
- Reimplemented from std::vector< Type, Allocator >.
- Definition at line 132 of file debug/vector.
- template<typename Type, typename Allocator =
- std::allocator<Type>> iterator __gnu_debug_def::vector< Type,
Allocator >::end () [inline]
- Returns a read/write iterator that points one past the
- last element in the vector. Iteration is done in ordinary element
- order.
- Reimplemented from std::vector< Type, Allocator >.
- Definition at line 136 of file debug/vector.
- Referenced by __gnu_debug_def::vector< Type, Allocator
- >::pop_back(), and __gnu_debug_def::vector< Type, Allocator
- >::rbegin().
- template<typename Type, typename Allocator =
- std::allocator<Type>> const_iterator __gnu_debug_def::vector<
Type, Allocator >::end () const [inline]
- Returns a read-only (constant) iterator that points one
- past the last element in the vector. Iteration is done in ordi
- nary element order.
- Reimplemented from std::vector< Type, Allocator >.
- Definition at line 140 of file debug/vector.
- template<typename Type, typename Allocator =
- std::allocator<Type>> reverse_iterator __gnu_debug_def::vector<
Type, Allocator >::rbegin () [inline]
- Returns a read/write reverse iterator that points to the
- last element in the vector. Iteration is done in reverse element
- order.
- Reimplemented from std::vector< Type, Allocator >.
- Definition at line 144 of file debug/vector.
- References __gnu_debug_def::vector< Type, Allocator
- >::end().
- template<typename Type, typename Allocator =
- std::allocator<Type>> const_reverse_iterator
- __gnu_debug_def::vector< Type, Allocator >::rbegin () const
- [inline]
- Returns a read-only (constant) reverse iterator that
- points to the last element in the vector. Iteration is done in
- reverse element order.
- Reimplemented from std::vector< Type, Allocator >.
- Definition at line 148 of file debug/vector.
- References __gnu_debug_def::vector< Type, Allocator
- >::end().
- template<typename Type, typename Allocator =
- std::allocator<Type>> reverse_iterator __gnu_debug_def::vector<
Type, Allocator >::rend () [inline]
- Returns a read/write reverse iterator that points to one
- before the first element in the vector. Iteration is done in re
- verse element order.
- Reimplemented from std::vector< Type, Allocator >.
- Definition at line 152 of file debug/vector.
- References __gnu_debug_def::vector< Type, Allocator >::be
- gin().
- template<typename Type, typename Allocator =
- std::allocator<Type>> const_reverse_iterator
- __gnu_debug_def::vector< Type, Allocator >::rend () const
- [inline]
- Returns a read-only (constant) reverse iterator that
- points to one before the first element in the vector. Iteration
- is done in reverse element order.
- Reimplemented from std::vector< Type, Allocator >.
- Definition at line 156 of file debug/vector.
- References __gnu_debug_def::vector< Type, Allocator >::be
- gin().
- template<typename Type, typename Allocator =
- std::allocator<Type>> reference __gnu_debug_def::vector< Type,
Allocator >::front () [inline]
- Returns a read/write reference to the data at the first
- element of the vector.
- Reimplemented from std::vector< Type, Allocator >.
- Definition at line 206 of file debug/vector.
- template<typename Type, typename Allocator =
- std::allocator<Type>> const_reference __gnu_debug_def::vector<
Type, Allocator >::front () const [inline]
- Returns a read-only (constant) reference to the data at
- the first element of the vector.
- Reimplemented from std::vector< Type, Allocator >.
- Definition at line 213 of file debug/vector.
- template<typename Type, typename Allocator =
- std::allocator<Type>> reference __gnu_debug_def::vector< Type,
Allocator >::back () [inline]
- Returns a read/write reference to the data at the last el
- ement of the vector.
- Reimplemented from std::vector< Type, Allocator >.
- Definition at line 220 of file debug/vector.
- template<typename Type, typename Allocator =
- std::allocator<Type>> const_reference __gnu_debug_def::vector<
Type, Allocator >::back () const [inline]
- Returns a read-only (constant) reference to the data at
- the last element of the vector.
- Reimplemented from std::vector< Type, Allocator >.
- Definition at line 227 of file debug/vector.
- template<typename Type, typename Allocator =
- std::allocator<Type>> void __gnu_debug_def::vector< Type,
Allocator >::push_back (const Type & x) [inline]
Add data to the end of the vector.
- Parameters:
- x Data to be added.
- This is a typical stack operation. The function creates an
- element at the end of the vector and assigns the given data to
- it. Due to the nature of a vector this operation can be done in
- constant time if the vector has preallocated space available.
- Reimplemented from std::vector< Type, Allocator >.
- Definition at line 235 of file debug/vector.
- template<typename Type, typename Allocator =
- std::allocator<Type>> void __gnu_debug_def::vector< Type,
Allocator >::pop_back () [inline]
Removes last element.
- This is a typical stack operation. It shrinks the vector
- by one.
- Note that no data is returned, and if the last element's
- data is needed, it should be retrieved before pop_back() is
- called.
- Reimplemented from std::vector< Type, Allocator >.
- Definition at line 245 of file debug/vector.
- References __gnu_debug_def::vector< Type, Allocator
- >::end().
- template<typename Type, typename Allocator =
- std::allocator<Type>> void __gnu_debug_def::vector< Type,
Allocator >::clear () [inline]
- Erases all the elements. 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::vector< Type, Allocator >.
- Definition at line 336 of file debug/vector.
- void std::vector< Type , Allocator >::assign (size_type n,
- const value_type & __val) [inline, inherited]
- Assigns a given value to a vector.
- Parameters:
n Number of elements to be assigned.
val Value to be assigned. - This function fills a vector with n copies of the given
- value. Note that the assignment completely changes the vector and
- that the resulting vector's size is the same as the number of el
- ements assigned. Old data may be lost.
- Definition at line 280 of file stl_vector.h.
- size_type std::vector< Type , Allocator >::size () const
- [inline, inherited]
- Returns the number of elements in the vector.
- Definition at line 375 of file stl_vector.h.
- Referenced by __gnu_debug_def::vector< Type, Allocator
- >::resize().
- size_type std::vector< Type , Allocator >::max_size (void)
- const [inline, inherited]
- Returns the size() of the largest possible vector.
- Definition at line 379 of file stl_vector.h.
- void std::vector< Type , Allocator >::resize (size_type
- new_size, const value_type & x) [inline, inherited]
- Resizes the vector to the specified number of elements.
- Parameters:
new_size Number of elements the vector should contain. x Data with which new elements should be populated.
- This function will resize the vector to the specified num
- ber of elements. If the number is smaller than the vector's cur
- rent size the vector is truncated, otherwise the vector is ex
- tended and new elements are populated with given data.
- Definition at line 393 of file stl_vector.h.
- void std::vector< Type , Allocator >::resize (size_type
- new_size) [inline, inherited]
- Resizes the vector to the specified number of elements.
- Parameters:
new_size Number of elements the vector should contain.
- This function will resize the vector to the specified num
- ber of elements. If the number is smaller than the vector's cur
- rent size the vector is truncated, otherwise the vector is ex
- tended and new elements are default-constructed.
- Definition at line 412 of file stl_vector.h.
- size_type std::vector< Type , Allocator >::capacity () const
- [inline, inherited]
- Returns the total number of elements that the vector can
- hold before needing to allocate more memory.
- Definition at line 419 of file stl_vector.h.
- Referenced by __gnu_debug_def::vector< Type, Allocator
- >::M_requires_reallocation().
- bool std::vector< Type , Allocator >::empty () const [inline,
- inherited]
- Returns true if the vector is empty. (Thus begin() would
- equal end().)
- Definition at line 427 of file stl_vector.h.
- void std::vector< Type , Allocator >::reserve (size_type n)
- [inherited]
- Attempt to preallocate enough memory for specified number
- of elements.
- Parameters:
n Number of elements required.
- Exceptions:
std::length_error If n exceeds max_size().
- This function attempts to reserve enough memory for the
- vector to hold the specified number of elements. If the number
- requested is more than max_size(), length_error is thrown.
- The advantage of this function is that if optimal code is
- a necessity and the user can determine the number of elements
- that will be required, the user can reserve the memory in ad
- vance, and thus prevent a possible reallocation of memory and
- copying of vector data.
- reference std::vector< Type , Allocator >::operator[]
- (size_type n) [inline, inherited]
- Subscript access to the data contained in the vector.
- Parameters:
n The index of the element for which data should beaccessed.
- Returns:
Read/write reference to data.
- This operator allows for easy, array-style, data access.
- Note that data access with this operator is unchecked and
- out_of_range lookups are not defined. (For checked lookups see
- at().)
- Definition at line 462 of file stl_vector.h.
- const_reference std::vector< Type , Allocator >::operator[]
- (size_type n) const [inline, inherited]
- Subscript access to the data contained in the vector.
- Parameters:
n The index of the element for which data should beaccessed.
- Returns:
Read-only (constant) reference to data.
- This operator allows for easy, array-style, data access.
- Note that data access with this operator is unchecked and
- out_of_range lookups are not defined. (For checked lookups see
- at().)
- Definition at line 476 of file stl_vector.h.
- reference std::vector< Type , Allocator >::at (size_type n)
- [inline, inherited]
- Provides access to the data contained in the vector.
- Parameters:
n The index of the element for which data should beaccessed.
- Returns:
Read/write reference to data.
- Exceptions:
std::out_of_range If n is an invalid index.
- This function provides for safer data access. The parame
- ter is first checked that it is in the range of the vector. The
- function throws out_of_range if the check fails.
- Definition at line 500 of file stl_vector.h.
- const_reference std::vector< Type , Allocator >::at
- (size_type n) const [inline, inherited]
- Provides access to the data contained in the vector.
- Parameters:
n The index of the element for which data should beaccessed.
- Returns:
Read-only (constant) reference to data.
- Exceptions:
std::out_of_range If n is an invalid index.
- This function provides for safer data access. The parame
- ter is first checked that it is in the range of the vector. The
- function throws out_of_range if the check fails.
- Definition at line 514 of file stl_vector.h.
- iterator std::vector< Type , Allocator >::insert (iterator
- position, const value_type & x) [inherited]
- Inserts given value into vector before specified iterator.
- Parameters:
position An iterator into the vector.
x Data to be inserted. - Returns:
An iterator that points to the inserted data.
- This function will insert a copy of the given value before
- the specified location. Note that this kind of operation could be
- expensive for a vector and if it is frequently used the user
- should consider using std::list.
- void std::vector< Type , Allocator >::insert (iterator
- position, size_type n, const value_type & x) [inline, inherited]
- Inserts a number of copies of given data into the vector.
- Parameters:
position An iterator into the vector.
n Number of elements to be inserted.
x Data to be inserted. - This function will insert a specified number of copies of
- the given data before the location specified by position.
- Note that this kind of operation could be expensive for a
- vector and if it is frequently used the user should consider us
- ing std::list.
- Definition at line 611 of file stl_vector.h.
- void std::vector< Type , Allocator >::insert (iterator
- position, InputIterator first, InputIterator last) [inline,
- inherited]
- Inserts a range into the vector.
- Parameters:
position An iterator into the vector.
first An input iterator.
last An input iterator. - This function will insert copies of the data in the range
- [first,last) into the vector before the location specified by
- pos.
- Note that this kind of operation could be expensive for a
- vector and if it is frequently used the user should consider us
- ing std::list.
- Definition at line 630 of file stl_vector.h.
- iterator std::vector< Type , Allocator >::erase (iterator
- position) [inherited]
- Remove element at given position.
- Parameters:
position Iterator pointing to element to be erased.
- Returns:
An iterator pointing to the next element (or end()).
- This function will erase the element at the given position
- and thus shorten the vector by one.
- Note This operation could be expensive and if it is fre
- quently used the user should consider using std::list. The user
- is also cautioned 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 re
- sponsibilty.
- iterator std::vector< Type , Allocator >::erase (iterator
- first, iterator last) [inherited]
- Remove a range of elements.
- Parameters:
first Iterator pointing to the first element to beerased.
last Iterator pointing to one past the last element tobe erased. - Returns:
An iterator pointing to the element pointed to by lastprior to erasing (or end()).
- This function will erase the elements in the range
- [first,last) and shorten the vector accordingly.
- Note This operation could be expensive and if it is fre
- quently used the user should consider using std::list. The user
- is also cautioned 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 us
- er's responsibilty.
- void std::vector< Type , Allocator >::swap (vector< Type,
Allocator > & x) [inline, inherited]
Swaps data with another vector.
- Parameters:
- x A vector of the same element and allocator types.
- This exchanges the elements between two vectors in con
- stant time. (Three pointers, so it should be quite fast.) Note
- that the global std::swap() function is specialized such that
- std::swap(v1,v2) will feed to this function.
- Definition at line 687 of file stl_vector.h.
- References std::swap().
- 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