__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 of
elements.
void resize (size_type new_size)
Resizes the vector to the specified number of
elements.
size_type capacity () const
bool empty () const
void reserve (size_type n)
Attempt to preallocate enough memory for specified
number 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 specified
iterator.
void insert (iterator position, size_type n, const
value_type &x)
Inserts a number of copies of given data into the
vector.
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 this
container.
Safe_iterator_base * M_const_iterators
The list of constant iterators that reference this
container.
unsigned int M_version
The container version number. This number may never be
0.
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 be
accessed.
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 be
accessed.
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 be
accessed.
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 be
accessed.
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 be
erased.
last Iterator pointing to one past the last element to
be erased.
Returns:
An iterator pointing to the element pointed to by last
prior 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
Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout