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::set< T, Compare, Tree >

#include <Set.H>

Clases

class  iterator
 

Tipos públicos

typedef T value_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 const set::value_typeconst_reference
 Tipo genérico de referencia constante a elemento del conjunto.
 
typedef size_t size_type
 Tipo numérico para los tamaños (natural).
 
typedef T key_type
 El tipo dato de los elementos del conjunto.
 

Métodos públicos

 set ()
 Constructor vacío.
 
 set (const set &c)
 Instancia una copia del conjunto c.
 
 ~set ()
 
size_type size ()
 Retorna la cantidad de elementos que contiene el conjunto.
 
bool empty ()
 Retorna true si el contenedor esta vacío.
 
bool operator== (const set &c) const
 
bool operator!= (const set &c) const
 
bool operator< (const set &c) const
 
bool operator> (const set &c) const
 
bool operator<= (const set &c) const
 
bool operator>= (const set &c) const
 
size_type count (const T &value)
 
iterator find (const T &value)
 
iterator lower_bound (const T &value)
 
iterator upper_bound (const T &value)
 
setoperator= (set &c)
 Asigna todo el contenido de c a this.
 
void swap (set &c)
 
iterator begin ()
 Retorna un iterador posicionado al primer elemento del conjunto.
 
iterator end ()
 Retorna un iterador posicionado al último elemento del conjunto.
 
std::pair< iterator, bool > insert (const T &value)
 
template<typename Itor >
 set (Itor beg, const Itor &end)
 
iterator insert (const iterator &, const T &value)
 
template<typename Itor >
void insert (Itor beg, const Itor &end)
 
size_type erase (const T &value)
 
void erase (iterator pos)
 
iterator erase (const iterator &beg, const iterator &end)
 
void clear ()
 Borra todos los elementos del conjunto.
 

Descripción detallada

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

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

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
Tel tipo de dato que almacenará el conjunto.
Compareel criterio de comparación entre los elementos de tipo T. Por omisión se implanta T::operator<(const T&).
Treela 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

Documentación del constructor y destructor

template<typename T, class Compare = Aleph::less<T>, template< class, class > class Tree = Treap_Rk>
Aleph::set< T, Compare, Tree >::~set ( )
inline

Destructor; todos los elementos son eliminados y la memoria es liberada.

template<typename T, class Compare = Aleph::less<T>, template< class, class > class Tree = Treap_Rk>
template<typename Itor >
Aleph::set< T, Compare, Tree >::set ( Itor  beg,
const Itor &  end 
)
inline

Instancia un conjunto con los elementos comprendidos en el rango [beg..end).

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

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

Documentación de las funciones miembro

template<typename T, class Compare = Aleph::less<T>, template< class, class > class Tree = Treap_Rk>
size_type Aleph::set< T, Compare, Tree >::count ( const T &  value)
inline

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.

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

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

Referenciado por Aleph::Net_Graph< NodeT, ArcT >::is_sink(), Aleph::Net_Graph< NodeT, ArcT >::is_source() y Aleph::min_cut().

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

template<typename T, class Compare = Aleph::less<T>, template< class, class > class Tree = Treap_Rk>
size_type Aleph::set< T, Compare, Tree >::erase ( const T &  value)
inline

Borra value del conjunto.

erase(value) borra el elemento value del conjunto.

Parámetros
[in]valuevalor 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.

Referenciado por Aleph::Net_Graph< NodeT, ArcT >::connect_arc(), Aleph::Net_Graph< NodeT, ArcT >::insert_arc(), Aleph::Net_Graph< NodeT, ArcT >::insert_node() y Aleph::Net_Graph< NodeT, ArcT >::remove_node().

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

template<typename T, class Compare = Aleph::less<T>, template< class, class > class Tree = Treap_Rk>
void Aleph::set< T, Compare, Tree >::erase ( iterator  pos)
inline

Borra del conjunto el valor actual del iterador pos.

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

Parámetros
[in]positerador cuyo valor actual será borrado.
Excepciones
domain_errorsi el iterador no está asociado al conjunto this.
underflow_errorsi el iterador está desbordado por la izquierda.
overflow_errorsi el iterador está desbordado por la derecha.
template<typename T, class Compare = Aleph::less<T>, template< class, class > class Tree = Treap_Rk>
iterator Aleph::set< T, Compare, Tree >::erase ( const iterator beg,
const iterator end 
)
inline

Borra del conjunto el rango comprendido por [beg..end).

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

Parámetros
[in]begiterador posicionado sobre el elemento inicio del rango.
[in]enditerador posicionado sobre el último más un elemento del rango.
Excepciones
domain_errorsi los iteradores beg y end no están asociados a this.
Nota
El elemento posicionado por el iterador end no se incluye.
template<typename T, class Compare = Aleph::less<T>, template< class, class > class Tree = Treap_Rk>
iterator Aleph::set< T, Compare, Tree >::find ( const T &  value)
inline

Retorna un iterador posicionado sobre el elemento del conjunto value.

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]valuevalor 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.
template<typename T, class Compare = Aleph::less<T>, template< class, class > class Tree = Treap_Rk>
std::pair<iterator, bool> Aleph::set< T, Compare, Tree >::insert ( const T &  value)
inline

Inserta value en el conjunto.

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]valuevalor 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_allocsi no hay suficiente memoria.

Referenciado por Aleph::compute_min_cut(), Aleph::Net_Graph< NodeT, ArcT >::disconnect_arc(), Aleph::set< Node * >::insert(), Aleph::Net_Graph< NodeT, ArcT >::insert_node(), Aleph::min_cut(), Aleph::Net_Graph< NodeT, ArcT >::remove_arc() y Aleph::set< Node * >::set().

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

template<typename T, class Compare = Aleph::less<T>, template< class, class > class Tree = Treap_Rk>
iterator Aleph::set< T, Compare, Tree >::insert ( const iterator ,
const T &  value 
)
inline

Inserta value en el conjunto.

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]valuevalor 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_allocsi no hay suficiente memoria.
template<typename T, class Compare = Aleph::less<T>, template< class, class > class Tree = Treap_Rk>
template<typename Itor >
void Aleph::set< T, Compare, Tree >::insert ( Itor  beg,
const Itor &  end 
)
inline

Inserta en el conjunto los elementos de un contenedor comprendidos en el rango [beg..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]begiterador posicionado sobre el elemento inicio del rango.
[in]enditerador posicionado sobre el último más un elemento final del rango.
Excepciones
domain_errorsi los iteradores beg y end no están asociados al mismo contenedor.
bad_allocsi no hay suficiente memoria.
Nota
El elemento posicionado por el iterador end no se incluye.
template<typename T, class Compare = Aleph::less<T>, template< class, class > class Tree = Treap_Rk>
iterator Aleph::set< T, Compare, Tree >::lower_bound ( const T &  value)
inline

Retorna un iterador posicionado sobre el predecesor de value en el conjunto; independientemente de que value se encuentre o no en el conjunto.

template<typename T, class Compare = Aleph::less<T>, template< class, class > class Tree = Treap_Rk>
bool Aleph::set< T, Compare, Tree >::operator!= ( const set< T, Compare, Tree > &  c) const
inline

Retorna true si el conjunto this no contiene exactamente los mismos elementos del conjunto c.

template<typename T, class Compare = Aleph::less<T>, template< class, class > class Tree = Treap_Rk>
bool Aleph::set< T, Compare, Tree >::operator< ( const set< T, Compare, Tree > &  c) const
inline

Retorna true si los elementos ordenados del conjunto this son menores que los del conjunto c.

template<typename T, class Compare = Aleph::less<T>, template< class, class > class Tree = Treap_Rk>
bool Aleph::set< T, Compare, Tree >::operator<= ( const set< T, Compare, Tree > &  c) const
inline

Retorna true si los elementos ordenados del conjunto this son menores o iguales que los del conjunto c.

template<typename T, class Compare = Aleph::less<T>, template< class, class > class Tree = Treap_Rk>
bool Aleph::set< T, Compare, Tree >::operator== ( const set< T, Compare, Tree > &  c) const
inline

retorna true si el conjunto this contiene exactamente los mismos elementos del conjunto c.

template<typename T, class Compare = Aleph::less<T>, template< class, class > class Tree = Treap_Rk>
bool Aleph::set< T, Compare, Tree >::operator> ( const set< T, Compare, Tree > &  c) const
inline

Retorna true si los elementos ordenados del conjunto this son mayores que los del conjunto c.

template<typename T, class Compare = Aleph::less<T>, template< class, class > class Tree = Treap_Rk>
bool Aleph::set< T, Compare, Tree >::operator>= ( const set< T, Compare, Tree > &  c) const
inline

Retorna true si los elementos ordenados del conjunto this son mayores o iguales que los del conjunto c.

template<typename T, class Compare = Aleph::less<T>, template< class, class > class Tree = Treap_Rk>
void Aleph::set< T, Compare, Tree >::swap ( set< T, Compare, Tree > &  c)
inline

Intercambia en tiempo constante todos los elementos de this con los de c.

Referenciado por Aleph::compute_min_cut().

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

template<typename T, class Compare = Aleph::less<T>, template< class, class > class Tree = Treap_Rk>
iterator Aleph::set< T, Compare, Tree >::upper_bound ( const T &  value)
inline

Retorna un iterador posicionado sobre el sucesor de value en el conjunto; independientemente de que value se encuentre o no en el conjunto.


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

Leandro Rabindranath León