Aleph-w  1.5a.2
Biblioteca general de algoritmos y estructuras de datos
 Todo Clases Archivos Funciones Variables 'typedefs' Enumeraciones Amigas Grupos Páginas
Referencia de la plantilla de la Clase Aleph::vector< T >

#include <Vector.H>

Clases

class  iterator
 

Tipos públicos

typedef T value_type
 El tipo de dato que almacena el vector.
 
typedef vector::value_typereference
 Tipo referencia a una entrada del vector.
 
typedef const vector::value_typeconst_reference
 Tipo referencia constante a una entrada del vector.
 
typedef size_t size_type
 Tipo numérico utilizados para tamaños e índices del vector.
 

Métodos públicos

 vector ()
 Instancia un vector vacío.
 
 vector (const vector &c)
 Instancia un vector copia de v.
 
 vector (const size_type &num)
 Instancia un vector con capacidad inicial de num.
 
template<typename Itor >
 vector (Itor beg, const Itor &end)
 
 vector (const size_type &num, const T &value)
 Instancia un nuevo vector de num elementos de valor value.
 
const size_typesize () const
 Retorna el número de elementos que tiene el vector.
 
bool empty () const
 Retorna true si el vector está vacío.
 
size_type max_size () const
 Retorna la máxima dimensión que puede tener el vector.
 
size_type capacity () const
 Retorna la capacidad (dimension actual) del vector.
 
void reserve (const size_type &num)
 Aumenta la capacidad del vector en num entradas.
 
void resize (const size_type &num)
 Reajusta la capacidad del vector a num entradas.
 
void resize (const size_type &num, const T &value)
 
vectoroperator= (const vector &c)
 Asigna un vector.
 
void assign (const size_type &num, const T &value)
 Asigna al vector num entradas con valor value.
 
template<typename Itor >
void assign (Itor beg, const Itor &end)
 
void swap (vector &c)
 
reference at (const size_type &idx)
 Retorna una referencia al elemento idx del vector.
 
const_reference at (const size_type &idx) const
 
reference operator[] (const size_type &idx)
 Accede a la entrada idx.
 
const_reference operator[] (const size_type &idx) const
 Accede a la entrada idx de un vector constante.
 
reference front () const
 
reference back () const
 
iterator begin () const
 
iterator end () const
 
iterator insert (const iterator &pos, const T &value)
 Inserta value en la posición dada por el iterador pos.
 
void insert (iterator pos, const size_type &len, const T &value)
 
template<class Itor >
void insert (const iterator &pos, Itor beg, const Itor &end)
 
void push_back (const T &value)
 Inserta value al final del vector.
 
iterator erase (const iterator &pos)
 Borra el elemento de la posición pos.
 
iterator erase (const iterator &beg, const iterator &end)
 
void pop_back ()
 Elimina el elemento situado al final del vector.
 
void clear ()
 Elimina todos los elementos del vector.
 
bool operator== (const vector &r) const
 
bool operator!= (const vector &r) const
 Retorna true si this es distinto que el vector r.
 
bool operator< (const vector &r) const
 
bool operator> (const vector &r) const
 
bool operator<= (const vector &r) const
 
bool operator>= (const vector &r) const
 

Descripción detallada

template<class T>
class Aleph::vector< T >

Implantación Aleph del contenedor estándar C++ vector<T>.

Esta implantación, basada en el tipo DynArray, tiene como ventaja sobre otras implantaciones de vector<T> su alta capacidad de relocalización, la cual se comprende bajo dos bondades al momento de que se requiera mayor capacidad:

  1. Ninguna de las entradas por debajo de la capacidad actual es relocalizada. Esto redunda en la posibilidad de mantener con seguridad punteros a entradas dentro del vector.
  2. La cantidad de memoria que se aparta cuando el vector crece es proporcional a la diferencia entre las nueva y antigua dimensiones.

Las operaciones sobre un vector no efectúan verificación de rango.

Siendo derivado de DynArray, esta implantación es más lenta en acceso que otra implantación basada estrictamente en vectores contiguos de memoria.

Documentación del constructor y destructor

template<class T>
template<typename Itor >
Aleph::vector< T >::vector ( Itor  beg,
const Itor &  end 
)
inlineexplicit

Instancia un nuevo vector con copia de los elementos comprendidos en el rango [beg..end) de un contenedor.

Documentación de las funciones miembro

template<class T>
template<typename Itor >
void Aleph::vector< T >::assign ( Itor  beg,
const Itor &  end 
)
inline

Asigna al vector los elementos de un contenedor comprendido en el rango [beg..end).

template<class T>
const_reference Aleph::vector< T >::at ( const size_type idx) const
inline

Retorna una referencia constante al elemento idx de un vector constante.

template<class T>
reference Aleph::vector< T >::back ( ) const
inline

Retorna una referencia al elemento del trasero (el último copiado y el más reciente si se inserta secuencialmente).

template<class T>
iterator Aleph::vector< T >::begin ( ) const
inline

Retorna un iterador al frente del vector; el primero si fue insertado secuencialmente (índice 0).

template<class T>
iterator Aleph::vector< T >::end ( ) const
inline

Retorna un iterador al frente del vector; el último si fue insertado secuencialmente.

Referenciado por Aleph::vector< Key >::insert().

+ Gráfico de llamadas a esta función:

template<class T>
iterator Aleph::vector< T >::erase ( const iterator beg,
const iterator end 
)
inline

Elimina los elementos comprendidos en el rango del vector [[beg..end]]. Retorna un iterador posicionado sobre el elemento perteneciente al vector que queda en la posición beg.

template<class T>
reference Aleph::vector< T >::front ( ) const
inline

Retorna una referencia al elemento del frente (el primero copiado y el menos reciente si se inserta secuencialmente).

template<class T>
void Aleph::vector< T >::insert ( iterator  pos,
const size_type len,
const T &  value 
)
inline

Inserta len instancias de value en la posición dada por el iterador pos.

template<class T>
template<class Itor >
void Aleph::vector< T >::insert ( const iterator pos,
Itor  beg,
const Itor &  end 
)
inline

Inserta a partir de la posición dada por el iterador pos, los elementos de un contenedor del rango [beg..end)

template<class T>
bool Aleph::vector< T >::operator< ( const vector< T > &  r) const
inline

Retorna true si los elementos del vector this son lexicográficamente menores que los elementos del vector r.

template<class T>
bool Aleph::vector< T >::operator<= ( const vector< T > &  r) const
inline

Retorna true si los elementos del vector this son lexicográficamente menores o iguales que los elementos del vector r.

template<class T>
bool Aleph::vector< T >::operator== ( const vector< T > &  r) const
inline

Retorna true si todos los elementos del vector this son iguales a los elementos del vector r.

template<class T>
bool Aleph::vector< T >::operator> ( const vector< T > &  r) const
inline

Retorna true si los elementos del vector this son lexicográficamente menores que los elementos del vector r.

template<class T>
bool Aleph::vector< T >::operator>= ( const vector< T > &  r) const
inline

Retorna true si los elementos del vector this son lexicográficamente mayores o iguales que los elementos del vector r.

template<class T>
void Aleph::vector< T >::resize ( const size_type num,
const T &  value 
)
inline

Reajusta la capacidad a num entradas con valor value (en caso de que num sea mayor que la capacidad actual.

template<class T>
void Aleph::vector< T >::swap ( vector< T > &  c)
inline

Intercambia todos los elementos de this con los de c en tiempo contante (muy rápido).


La documentación para esta clase fue generada a partir del siguiente fichero:

Leandro Rabindranath León