|
|
| set () |
| | Constructor vacÃo.
|
| |
|
| set (const set &c) |
| | Instancia una copia del conjunto c.
|
| |
| | ~set () |
| |
|
size_type | size () const |
| | Retorna la cantidad de elementos que contiene el conjunto.
|
| |
|
bool | empty () const |
| | 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) const |
| |
| iterator | find (const T &value) const |
| |
| iterator | lower_bound (const T &value) const |
| |
| iterator | upper_bound (const T &value) const |
| |
|
set & | operator= (set &c) |
| | Asigna todo el contenido de c a this.
|
| |
| void | swap (set &c) |
| |
|
iterator | begin () const |
| | Retorna un iterador posicionado al primer elemento del conjunto.
|
| |
|
iterator | end () const |
| | 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.
|
| |
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.
- Parameters
-
| 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 |
- See also
- Treap_Rk map multiset multimap
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.
- Parameters
-
| [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. |
- Exceptions
-
| domain_error | si los iteradores beg y end no están asociados al mismo contenedor. |
| bad_alloc | si no hay suficiente memoria. |
- Note
- 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>
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.
- Parameters
-
- Returns
- 1 si el elemento se encuentra en el conjunto; 0 de lo contrario.
template<typename T, class Compare = Aleph::less<T>, template< class, class > class Tree = Treap_Rk>
Borra value del conjunto.
erase(value) borra el elemento value del conjunto.
- Parameters
-
| [in] | value | valor del elemento a borrar. |
- Returns
- 1 si value estaba dentro del conjunto; o de lo contrario.
- Note
- 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.
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.
- Parameters
-
| [in] | pos | iterador cuyo valor actual será borrado. |
- Exceptions
-
| 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. |
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.
- Parameters
-
| [in] | beg | iterador posicionado sobre el elemento inicio del rango. |
| [in] | end | iterador posicionado sobre el último más un elemento del rango. |
- Exceptions
-
| domain_error | si los iteradores beg y end no están asociados a this. |
- Note
- 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 | ) |
const |
|
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.
- Parameters
-
| [in] | value | valor a buscar dentro del conjunto |
- Returns
- 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.
- Parameters
-
| [in] | value | valor a insertar en el conjunto. |
- Returns
- 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.
- Exceptions
-
| bad_alloc | si no hay suficiente memoria. |
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.
- Parameters
-
| [in] | value | valor a insertar en el conjunto. |
- Returns
- 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.
- Exceptions
-
| bad_alloc | si 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.
- Parameters
-
| [in] | beg | iterador posicionado sobre el elemento inicio del rango. |
| [in] | end | iterador posicionado sobre el último más un elemento final del rango. |
- Exceptions
-
| domain_error | si los iteradores beg y end no están asociados al mismo contenedor. |
| bad_alloc | si no hay suficiente memoria. |
- Note
- El elemento posicionado por el iterador end no se incluye.