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::map< Key, Elem, Compare, Tree >

#include <Map.H>

Clases

class  iterator
 

Tipos públicos

typedef std::pair< Key, Elem > Pair
 Tipo par almacenado en mapeo.
 
typedef Pair value_type
 Tipo a exportar como tipo del contenedor.
 
typedef map::value_typereference
 
typedef const map::value_typeconst_reference
 Tipo generico referencia constante.
 
typedef size_t size_type
 
typedef Key key_type
 El tipo de clave de indización.
 
typedef Elem mapped_type
 El tipo de rango del mapeo.
 

Métodos públicos

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

Descripción detallada

template<class Key, class Elem, class Compare = Aleph::less<Key>, template< class, class > class Tree = Treap_Rk>
class Aleph::map< Key, Elem, Compare, Tree >

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

Esta es una implantación parcial de la clase estándar C++ map<Key,Elem>, la cual está 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.

map<Key,Elem> implanta un mapeo desde claves de tipo Key, que no se pueden repetir, a un mapeo de elementos de tipo Elem, los cuales eventualmente pueden repetirse si se asocian a claves distintas.

Los elementos del mapeo son pares ordenados. Un mapeo es sinónimo de función desde Key–>Elem. Esta versión el mapeo usa el tipo Pair de Aleph, cuya implantación está basada en la de gnu.

Un mapeo m es acesible mediante el operador m[key], donde key es la clave de indización. El resultado de m[key] es el elemento asociado a la clave key.

Parámetros
Keyel tipo de dato que almacenará el mapeo.
Elemel tipo de elemento a indizar según una clave.
Compareel criterio de comparación entre las claves de tipo Key. Por omisión se implanta Key::operator<(const Key &).
Treela clase de árbol binario de búsqueda con rangos que instrumentará el mapeo. Por omisión si usa Treap_Rk
Ver también
Treap_Rk set multiset multimap

Documentación de los 'Typedef' miembros de la clase

template<class Key, class Elem, class Compare = Aleph::less<Key>, template< class, class > class Tree = Treap_Rk>
typedef map::value_type& Aleph::map< Key, Elem, Compare, Tree >::reference

Tipo generico referencia al tipo de elemento que almacena el mapeo.

Documentación del constructor y destructor

template<class Key, class Elem, class Compare = Aleph::less<Key>, template< class, class > class Tree = Treap_Rk>
Aleph::map< Key, Elem, Compare, Tree >::~map ( )
inline

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

Hace referencia a Aleph::destroyRec().

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

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

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

Este constructor instancia un mapeo 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.

Hace referencia a Aleph::map< Key, Elem, Compare, Tree >::insert().

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

Documentación de las funciones miembro

template<class Key, class Elem, class Compare = Aleph::less<Key>, template< class, class > class Tree = Treap_Rk>
size_type Aleph::map< Key, Elem, Compare, Tree >::count ( const Key &  key)
inline

Retorna la cantidad de instancias de key que hay dentro del mapeo; o sea, por definición de set<T>, 1 si el elemento está dentro del mapeo; 0 de lo contrario.

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

Parámetros
[in]keyvalor de clave a buscar.
Devuelve
1 si el elemento se encuentra en el mapeo; 0 de lo contrario.
template<class Key, class Elem, class Compare = Aleph::less<Key>, template< class, class > class Tree = Treap_Rk>
size_type Aleph::map< Key, Elem, Compare, Tree >::erase ( const Key &  key)
inline

Borra key del mapeo.

erase(key) borra el elemento key del mapeo.

Parámetros
[in]keyvalor del elemento a borrar.
Devuelve
1 si key estaba dentro del mapeo; 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::map< Key, Elem, Compare, Tree >::erase().

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

template<class Key, class Elem, class Compare = Aleph::less<Key>, template< class, class > class Tree = Treap_Rk>
void Aleph::map< Key, Elem, Compare, Tree >::erase ( iterator  pos)
inline

Borra del mapeo el valor actual del iterador pos.

erase(pos) borra del mapeo 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 mapeo this.
underflow_errorsi el iterador está desbordado por la izquierda.
overflow_errorsi el iterador está desbordado por la derecha.

Hace referencia a Aleph::map< Key, Elem, Compare, Tree >::erase() y KEY.

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

template<class Key, class Elem, class Compare = Aleph::less<Key>, template< class, class > class Tree = Treap_Rk>
iterator Aleph::map< Key, Elem, Compare, Tree >::erase ( const iterator beg,
const iterator end 
)
inline

Borra del mapeo el rango comprendido [beg..end).

erase(beg,end) borra eficientemente todos los elementos del mapeo 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.

Hace referencia a Aleph::destroyRec() y Aleph::map< Key, Elem, Compare, Tree >::end().

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

template<class Key, class Elem, class Compare = Aleph::less<Key>, template< class, class > class Tree = Treap_Rk>
iterator Aleph::map< Key, Elem, Compare, Tree >::find ( const Key &  key)
inline

Retorna un iterador posicionado sobre el elemento del mapeo key.

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

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

Hace referencia a Aleph::map< Key, Elem, Compare, Tree >::end().

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

template<class Key, class Elem, class Compare = Aleph::less<Key>, template< class, class > class Tree = Treap_Rk>
std::pair<iterator, bool> Aleph::map< Key, Elem, Compare, Tree >::insert ( const Pair key)
inline

Inserta key en el mapeo.

insert(key) inserta en el mapeo this una copia del elemento key 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]keyvalor a insertar en el mapeo.
Devuelve
un par con un iterador y un valor lógico. Si key no se encuentra dentro del mapeo, 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::map< Key, Elem, Compare, Tree >::insert() y Aleph::map< Key, Elem, Compare, Tree >::map().

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

template<class Key, class Elem, class Compare = Aleph::less<Key>, template< class, class > class Tree = Treap_Rk>
iterator Aleph::map< Key, Elem, Compare, Tree >::insert ( iterator  ,
const Pair key 
)
inline

Inserta key en el mapeo.

insert(pos, key) inserta en el mapeo this una copia del elemento key 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]keyvalor a insertar en el mapeo.
Devuelve
un iterador posicionado sobre el elemento recién insertado si key no se encontraba dentro del mapeo; de lo contrario, el iterador se entrega desbordado.
Excepciones
bad_allocsi no hay suficiente memoria.

Hace referencia a Aleph::map< Key, Elem, Compare, Tree >::insert().

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

template<class Key, class Elem, class Compare = Aleph::less<Key>, template< class, class > class Tree = Treap_Rk>
template<typename Itor >
void Aleph::map< Key, Elem, Compare, Tree >::insert ( Itor  beg,
const Itor &  end 
)
inline

Inserta en el mapeo 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 mapeo 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.

Hace referencia a Aleph::map< Key, Elem, Compare, Tree >::insert().

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

template<class Key, class Elem, class Compare = Aleph::less<Key>, template< class, class > class Tree = Treap_Rk>
iterator Aleph::map< Key, Elem, Compare, Tree >::lower_bound ( const Key &  key)
inline

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

template<class Key, class Elem, class Compare = Aleph::less<Key>, template< class, class > class Tree = Treap_Rk>
bool Aleph::map< Key, Elem, Compare, Tree >::operator!= ( const map< Key, Elem, Compare, Tree > &  c) const
inline

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

template<class Key, class Elem, class Compare = Aleph::less<Key>, template< class, class > class Tree = Treap_Rk>
bool Aleph::map< Key, Elem, Compare, Tree >::operator< ( const map< Key, Elem, Compare, Tree > &  c) const
inline

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

Hace referencia a KEY.

template<class Key, class Elem, class Compare = Aleph::less<Key>, template< class, class > class Tree = Treap_Rk>
bool Aleph::map< Key, Elem, Compare, Tree >::operator<= ( const map< Key, Elem, Compare, Tree > &  c)
inline

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

template<class Key, class Elem, class Compare = Aleph::less<Key>, template< class, class > class Tree = Treap_Rk>
bool Aleph::map< Key, Elem, Compare, Tree >::operator== ( const map< Key, Elem, Compare, Tree > &  c) const
inline

Retorna true si el mapeo this tiene exactamente los mismos elementos del mapeo c.

Hace referencia a KEY y Aleph::map< Key, Elem, Compare, Tree >::size().

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

template<class Key, class Elem, class Compare = Aleph::less<Key>, template< class, class > class Tree = Treap_Rk>
bool Aleph::map< Key, Elem, Compare, Tree >::operator> ( const map< Key, Elem, Compare, Tree > &  c)
inline

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

template<class Key, class Elem, class Compare = Aleph::less<Key>, template< class, class > class Tree = Treap_Rk>
bool Aleph::map< Key, Elem, Compare, Tree >::operator>= ( const map< Key, Elem, Compare, Tree > &  c)
inline

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

template<class Key, class Elem, class Compare = Aleph::less<Key>, template< class, class > class Tree = Treap_Rk>
void Aleph::map< Key, Elem, Compare, Tree >::swap ( map< Key, Elem, Compare, Tree > &  c)
inline

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

template<class Key, class Elem, class Compare = Aleph::less<Key>, template< class, class > class Tree = Treap_Rk>
iterator Aleph::map< Key, Elem, Compare, Tree >::upper_bound ( const Key &  key)
inline

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

Hace referencia a KEY.


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

Leandro Rabindranath León