Referencia de la plantilla de la Clase set
[Árboles con raízContenedores de la biblioteca estándar C++.]

Implementación Aleph del tipo estándar set<T> basada en árboles binarios de búsqueda con rangos. Más...

Lista de todos los miembros.

Tipos públicos

typedef const set::value_typeconst_reference
 Tipo genérico de referencia constante a elemento del conjunto.
typedef T key_type
 El tipo dato de los elementos del conjunto.
typedef set::value_typepointer
 Tipo genérico de puntero a elemento del conjunto.
typedef set::value_typereference
 Tipo genérico de referencia a elemento del conjunto.
typedef size_t size_type
 Tipo numérico para los tamaños (natural).
typedef T value_type
 El tipo dato de los elementos del conjunto.

Métodos públicos

iterator begin ()
 Retorna un iterador posicionado al primer elemento del conjunto.
void clear ()
 Borra todos los elementos del conjunto.
size_type count (const T &value)
 Retorna la cantidad de instancias de value que hay dentro del conjunto; o sea, por definición de set<T>, 1 si el elemento está dentro del conjunto; 0 de lo contrario.
bool empty () const
 Retorna true si el contenedor esta vacío.
iterator end ()
 Retorna un iterador posicionado al último elemento del conjunto.
iterator erase (const iterator &beg, const iterator &end)
 Borra del conjunto el rango comprendido por [beg.
void erase (iterator pos)
 Borra del conjunto el valor actual del iterador pos.
size_type erase (const T &value)
 Borra value del conjunto.
iterator find (const T &value)
 Retorna un iterador posicionado sobre el elemento del conjunto value.
template<typename Itor>
void insert (Itor beg, const Itor &end)
 Inserta en el conjunto los elementos de un contenedor comprendidos en el rango [beg.
iterator insert (const iterator &, const T &value)
 Inserta value en el conjunto.
Aleph::pair< iterator, bool > insert (const T &value)
 Inserta value en el conjunto.
iterator lower_bound (const T &value)
 Retorna un iterador posicionado sobre el predecesor de value en el conjunto; independientemente de que value se encuentre o no en el conjunto.
bool operator!= (const set &c) const
 Retorna true si el conjunto this no contiene exactamente los mismos elementos del conjunto c.
bool operator< (const set &c) const
 Retorna true si los elementos ordenados del conjunto this son menores que los del conjunto c.
bool operator<= (const set &c) const
 Retorna true si los elementos ordenados del conjunto this son menores o iguales que los del conjunto c.
setoperator= (const set &c)
 Asigna todo el contenido de c a this.
bool operator== (const set &c) const
 retorna true si el conjunto this contiene exactamente los mismos elementos del conjunto c.
bool operator> (const set &c) const
 Retorna true si los elementos ordenados del conjunto this son mayores que los del conjunto c.
bool operator>= (const set &c) const
 Retorna true si los elementos ordenados del conjunto this son mayores o iguales que los del conjunto c.
template<typename Itor>
 set (Itor beg, const Itor &end)
 Instancia un conjunto con los elementos comprendidos en el rango [beg.
 set (const set &c)
 Instancia una copia del conjunto c.
 set ()
 Constructor vacío.
size_type size ()
 Retorna la cantidad de elementos que contiene el conjunto.
void swap (set &c)
 Intercambia en tiempo constante todos los elementos de this con los de c.
iterator upper_bound (const T &value)
 Retorna un iterador posicionado sobre el sucesor de value en el conjunto; independientemente de que value se encuentre o no en el conjunto.
 ~set ()
 Destructor; todos los elementos son eliminados y la memoria es liberada.

Clases

class  iterator
 Iterador sobre un conjunto. Más...


Descripción detallada

template<class T, class Compare = Aleph::less<T>, template< class, class > class Tree = Treap_Rk>
class Aleph::set< T, Compare, Tree >

Esta es una implantación parcial de la clase estándar C++ set<T> basada en árboles binarios de búsqueda con rangos. Por omisión se emplea la clase Treap_Rk, con la cual en medidas de rendimiento ha probado ser más rápida que sus contrapartes gnu y Boost.

set<T> implanta un conjunto de claves de tipo T en el cual no se permiten repitencias.

Parámetros:
T el tipo de dato que almacenará el conjunto.
Compare el criterio de comparación entre los elementos de tipo T. Por omisión se implanta T::operator<(const T&).
Tree la clase de árbol binario de búsqueda con rangos que instrumentará el conjunto. Por omisión si usa Treap_Rk
Ver también:
Treap_Rk map multiset multimap

Definición en la línea 82 del archivo Set.H.


Documentación del constructor y destructor

set ( Itor  beg,
const Itor &  end 
) [inline]

.end).

Este constructor instancia un conjunto con elementos iniciales copiados del contenedor asociado los iteradores beg y end.

Parámetros:
[in] beg iterador posicionado en el primer elemento del contenedor a copiar.
[in] end iterador posicionado en el último más un elemento del contenedor a copiar.
Excepciones:
domain_error si los iteradores beg y end no están asociados al mismo contenedor.
bad_alloc si no hay suficiente memoria.
Nota:
El elemento posicionado por el iterador end no se incluye.

Definición en la línea 333 del archivo Set.H.

Hace referencia a set::end().


Documentación de las funciones miembro

size_type count ( const T &  value  )  [inline]

Esta función es en sí una búsqueda absoluta cuyo resultado es 0 o 1.

Parámetros:
[in] value valor a buscar.
Devuelve:
1 si el elemento se encuentra en el conjunto; 0 de lo contrario.

Definición en la línea 446 del archivo Set.H.

iterator erase ( const iterator beg,
const iterator end 
) [inline]

.end).

erase(beg,end) borra eficientemente todos los elementos del conjunto delimitados por los iteradores beg y end.

Parámetros:
[in] beg iterador posicionado sobre el elemento inicio del rango.
[in] end iterador posicionado sobre el último más un elemento del rango.
Excepciones:
domain_error si los iteradores beg y end no están asociados a this.
Nota:
El elemento posicionado por el iterador end no se incluye.

Definición en la línea 704 del archivo Set.H.

Hace referencia a Aleph::destroyRec(), y set::iterator::itor.

void erase ( iterator  pos  )  [inline]

erase(pos) borra del conjunto el elemento correspondiente al valor actual del iterador pos.

Parámetros:
[in] pos iterador cuyo valor actual será borrado.
Excepciones:
domain_error si el iterador no está asociado al conjunto this.
underflow_error si el iterador está desbordado por la izquierda.
overflow_error si el iterador está desbordado por la derecha.

Definición en la línea 684 del archivo Set.H.

Hace referencia a set::iterator::itor.

size_type erase ( const T &  value  )  [inline]

erase(value) borra el elemento value del conjunto.

Parámetros:
[in] value valor del elemento a borrar.
Devuelve:
1 si value estaba dentro del conjunto; o de lo contrario.
Nota:
En realidad el valor de retorno tiene sentido para multiset y multimap en el cual el valor de retorno es la cantidad instancias del elemento que fueron borradas.

Definición en la línea 659 del archivo Set.H.

iterator find ( const T &  value  )  [inline]

find(value) busca el elemento value en el conjunto. Si éste es encontrado, entonces se retorna un iterador posicionado sobre el elemento del conjunto cuyo valor es value; de lo contrario, se retorna un iterador desbordado.

Parámetros:
[in] value valor a buscar dentro del conjunto
Devuelve:
iterador posicionado sobre el elemento con valor value o iterador desbordado si value no se encuentra dentro del conjunto.

Definición en la línea 467 del archivo Set.H.

Hace referencia a set::end(), y set::iterator::itor.

void insert ( Itor  beg,
const Itor &  end 
) [inline]

.end).

insert(beg,end) toma un rango de elementos de un contenedor (set, map, multiset, multimap, list o vector) asociados a los iteradores beg y end, e inserta todos los elementos del rango en el conjunto this.

Parámetros:
[in] beg iterador posicionado sobre el elemento inicio del rango.
[in] end iterador posicionado sobre el último más un elemento final del rango.
Excepciones:
domain_error si los iteradores beg y end no están asociados al mismo contenedor.
bad_alloc si no hay suficiente memoria.
Nota:
El elemento posicionado por el iterador end no se incluye.

Definición en la línea 637 del archivo Set.H.

Hace referencia a set::insert().

iterator insert ( const iterator ,
const T &  value 
) [inline]

insert(pos, value) inserta en el conjunto this una copia del elemento value y retorna un par con un iterador posicionado según la inserción y un valor lógico que indica si la inserción fue o no exitosa.

En realidad, el iterador es irrelevante en el caso de set<T>, pues no se admiten duplicidades. Este esquema de inserción tiene sentido en multiset y multimap. Se provee por razones de compatibilidad y economía de código.

Parámetros:
[in] pos iterador a partir del cual se desea realizar la inserción; no aplica para set<T> porque no se permiten claves repetidas.
[in] value valor a insertar en el conjunto.
Devuelve:
un iterador posicionado sobre el elemento recién insertado si value no se encontraba dentro del conjunto; de lo contrario, el iterador se entrega desbordado.
Excepciones:
bad_alloc si no hay suficiente memoria.

Definición en la línea 602 del archivo Set.H.

Hace referencia a set::iterator::itor.

Aleph::pair<iterator, bool> insert ( const T &  value  )  [inline]

insert(value) inserta en el conjunto this una copia del elemento value y retorna un par con un iterador posicionado según la inserción y un valor lógico que indica si la inserción fue o no exitosa.

Parámetros:
[in] value valor a insertar en el conjunto.
Devuelve:
un par con un iterador y un valor lógico. Si value no se encuentra dentro del conjunto, entonces el iterador está posicionado sobre el elemento recién insertado y el valor lógico es true; de lo contrario, el iterador está desbordado y el valor lógico es false.
Excepciones:
bad_alloc si no hay suficiente memoria.

Definición en la línea 562 del archivo Set.H.

Hace referencia a set::iterator::itor.

Referenciado por set::insert().


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

Leandro R. León