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

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

Lista de todos los miembros.

Tipos públicos

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

Métodos públicos

iterator begin ()
 Retorna un iterador posicionado al primer elemento del mapeo.
void clear ()
 Borra todos los elementos del mapeo.
size_type count (const Key &key)
 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.
bool empty () const
 Retorna true si el contenedor esta vacío.
iterator end ()
 Retorna un iterador posicionado al último elemento del mapeo.
iterator erase (const iterator &beg, const iterator &end)
 Borra del mapeo el rango comprendido [beg.
void erase (iterator pos)
 Borra del mapeo el valor actual del iterador pos.
size_type erase (const Key &key)
 Borra key del mapeo.
iterator find (const Key &key)
 Retorna un iterador posicionado sobre el elemento del mapeo key.
template<typename Itor>
void insert (Itor beg, const Itor &end)
 Inserta en el mapeo los elementos de un contenedor comprendidos en el rango [beg.
iterator insert (iterator, const Pair &key)
 Inserta key en el mapeo.
Aleph::pair< iterator, bool > insert (const Pair &key)
 Inserta key en el mapeo.
iterator lower_bound (const Key &key)
 Retorna un iterador posicionado sobre el predecesor de key en el mapeo; independientemente de que key se encuentre o no en el mapeo.
template<typename Itor>
 map (Itor beg, const Itor &end)
 Instancia un mapeo con los elementos comprendidos en el rango [beg.
 map (const map &c)
 Instancia una copia del mapeo c.
 map ()
 Constructor vacío.
bool operator!= (const map &c) const
 Retorna true si el mapeo this no contiene exactamente los mismos elementos del mapeo c.
bool operator< (const map &c) const
 Retorna true si los elementos ordenados del mapeo this son menores que los del mapeo c.
bool operator<= (const map &c)
 Retorna true si los elementos ordenados del mapeo this son menores o iguales que los del mapeo c.
mapoperator= (const map &c)
 Asigna todo el contenido de c a this.
bool operator== (const map &c) const
 Retorna true si el mapeo this tiene exactamente los mismos elementos del mapeo c.
bool operator> (const map &c)
 Retorna true si los elementos ordenados del mapeo this son mayores que los del mapeo c.
bool operator>= (const map &c)
 Retorna true si los elementos ordenados del mapeo this son mayores o iguales que los del mapeo c.
size_t size () const
 Retorna la cantidad de elementos que contiene el mapeo.
void swap (map &c)
 Intercambia en tiempo constante todos los elementos de this con los de c.
iterator upper_bound (const Key &key)
 Retorna un iterador posicionado sobre el sucesor de key en el mapeo; independientemente de que key se encuentre o no en el mapeo.
 ~map ()
 Destructor; todos los elementos son eliminados y la memoria es liberada.

Clases

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


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 >

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:
Key el tipo de dato que almacenará el mapeo.
Elem el tipo de elemento a indizar según una clave.
Compare el criterio de comparación entre las claves de tipo Key. Por omisión se implanta Key::operator<(const Key &).
Tree la 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

Definición en la línea 108 del archivo Map.H.


Documentación del constructor y destructor

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

.end).

Este constructor instancia un mapeo 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 362 del archivo Map.H.


Documentación de las funciones miembro

size_type count ( const Key &  key  )  [inline]

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

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

Definición en la línea 483 del archivo Map.H.

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

.end).

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

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

void erase ( iterator  pos  )  [inline]

erase(pos) borra del mapeo 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 mapeo 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 682 del archivo Map.H.

Hace referencia a map::erase(), map::iterator::itor, y KEY.

size_type erase ( const Key &  key  )  [inline]

erase(key) borra el elemento key del mapeo.

Parámetros:
[in] key valor 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.

Definición en la línea 657 del archivo Map.H.

Referenciado por map::erase().

iterator find ( const Key &  key  )  [inline]

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] key valor 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.

Definición en la línea 503 del archivo Map.H.

Hace referencia a map::end().

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 mapeo 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 640 del archivo Map.H.

Hace referencia a map::insert().

iterator insert ( iterator  ,
const Pair key 
) [inline]

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] pos iterador a partir del cual se desea realizar la inserción; no aplica para set<T> porque no se permiten claves repetidas.
[in] key valor 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_alloc si no hay suficiente memoria.

Definición en la línea 609 del archivo Map.H.

Aleph::pair<iterator, bool> insert ( const Pair key  )  [inline]

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] key valor 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_alloc si no hay suficiente memoria.

Definición en la línea 574 del archivo Map.H.

Referenciado por map::insert().


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

Leandro R. León