man __gnu_debug::def_vector (Fonctions bibliothèques) -

NAME

__gnu_debug_def::vector -

SYNOPSIS



Inherits std::vector< Type, Allocator >, and __gnu_debug::Safe_sequence< vector< Type, Allocator > >.

Public Types

typedef Base::reference reference

typedef Base::const_reference const_reference

typedef __gnu_debug::Safe_iterator< typename Base::iterator, vector > iterator

typedef __gnu_debug::Safe_iterator< typename Base::const_iterator, vector > 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 Allocator &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 (InputIterator 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 position, 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, InputIterator 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. void M_invalidate_if (Predicate pred)

void M_transfer_iter (const Safe_iterator< Iterator, vector< Type, Allocator > > &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, InputIterator last, __false_type)

void M_range_initialize (InputIterator first, InputIterator last, input_iterator_tag)

void M_range_initialize (ForwardIterator first, ForwardIterator 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, Integer __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 responsibilty.

Reimplemented from std::vector< Type, Allocator >.

Definition at line 95 of file debug/vector.

Member Function Documentation

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 elements assigned. Old data may be lost.

Definition at line 280 of file stl_vector.h.

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 elements assigned. Old data may be lost.

Reimplemented from std::vector< Type, Allocator >.

Definition at line 108 of file debug/vector.

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 parameter 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.

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 parameter 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.

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>> reference __gnu_debug_def::vector< Type, Allocator >::back () [inline]

Returns a read/write reference to the data at the last element 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_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 element 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 >::begin () [inline]

Returns a read/write iterator that points to the first element 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_debug_def::vector< Type, Allocator >::resize().

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().

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. Managing the pointer is the user's responsibilty.

Reimplemented from std::vector< Type, Allocator >.

Definition at line 336 of file debug/vector.

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.

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 ordinary element order.

Reimplemented from std::vector< Type, Allocator >.

Definition at line 140 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().

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 frequently 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 user's responsibilty.

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 frequently 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 responsibilty.

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 >::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.

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 using std::list.

Definition at line 630 of file stl_vector.h.

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 using std::list.

Definition at line 611 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 __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_invalidate_all () const [inline, inherited]

Invalidates all iterators.

Definition at line 202 of file safe_base.h.

void __gnu_debug::Safe_sequence< vector< Type, Allocator > >::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 iterators passed to pred, as the copies may interfere with the invalidation.

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 container now reference the other container.

Definition at line 172 of file debug.cc.

References __gnu_debug::swap().

void __gnu_debug::Safe_sequence< vector< Type, Allocator > >::M_transfer_iter (const Safe_iterator< Iterator, vector< Type, Allocator > > & x) [inherited]

Transfers all iterators that reference this memory location to this sequence from whatever sequence they are attached to.

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.

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 >::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.

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 >::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>> 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 >::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 >::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 >::begin().

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 reverse element order.

Reimplemented from std::vector< Type, Allocator >.

Definition at line 152 of file debug/vector.

References __gnu_debug_def::vector< Type, Allocator >::begin().

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 advance, and thus prevent a possible reallocation of memory and copying of vector data.

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 number of elements. If the number is smaller than the vector's current size the vector is truncated, otherwise the vector is extended and new elements are default-constructed.

Definition at line 412 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 number of elements. If the number is smaller than the vector's current size the vector is truncated, otherwise the vector is extended and new elements are populated with given data.

Definition at line 393 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().

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 constant 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().

Member Data Documentation

Safe_iterator_base* __gnu_debug::Safe_sequence_base::M_const_iterators [inherited]

The list of constant iterators that reference this container.

Definition at line 156 of file safe_base.h.

Safe_iterator_base* __gnu_debug::Safe_sequence_base::M_iterators [inherited]

The list of mutable iterators that reference this container.

Definition at line 153 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.