multimap Class
La clase estándar de multimap de la plantilla se utiliza para el almacenamiento y la recuperación de datos de una colección en la que el cada elemento es un par que tiene un valor de datos y un criterio de ordenación.El valor de la clave no debe ser único y se utiliza para ordenar los datos automáticamente.El valor de un elemento en un multimap, pero no el valor de clave asociado, se puede cambiar directamente.En su lugar, los valores de clave asociados a los antiguos elementos se deben eliminar y los nuevos valores de clave asociar los nuevos elementos insertados.
template <
class Key,
class Type,
class Traits=less<Key>,
class Allocator=allocator<pair <const Key, Type> >
>
class multimap
Parámetros
Clave
El tipo de datos clave que se almacene en el multimap.Tipo
El tipo de datos del elemento que se almacene en el multimap.Traits
El tipo que proporciona un objeto de función que puede comparar dos valores de elemento como criterio de ordenación para determinar el orden relativo en el multimap.El predicado binario less*<Key>* es el valor predeterminado.Allocator
El tipo que representa el objeto almacenado de asignador que encapsula los detalles sobre la asignación y la desasignación de asignación de memoria.Este argumento es opcional y el valor predeterminado es allocator*<*pair *<*const cierre, Type> >.
Comentarios
La clase de multimap STL es
Un contenedor asociativa, que un contenedor variable de tamaño que admiten la extracción eficaz de los valores de elemento basándose en un valor de clave asociado.
Reversible, porque proporciona iteradores bidireccionales para tener acceso a sus elementos.
Ordenados, porque los elementos se ordenan por valores de clave dentro del contenedor de acuerdo con una función especificada de la comparación.
Varias, porque sus elementos no necesitan tener claves únicas, de modo que un valor de clave puede tener muchos valores de datos del elemento asociados al.
Un contenedor asociativa de pares, porque los valores de los datos de elemento son distintos de los valores de clave.
Una clase de plantilla, porque la funcionalidad que proporciona es genérica y así que independiente del tipo específico de datos contenido como elementos o claves.Especificar los tipos de datos que se usarán para los elementos y las claves, sino, como los parámetros de la plantilla de clase junto con la función y el asignador de comparación.
El iterador proporcionado por la clase de mapa es un iterador bidireccional, pero el miembro de clase funciona inserción y multimap tiene versiones que toman como parámetros de plantilla un iterador más débil de entrada, cuyos requisitos de funcionalidad son más mínimos que los garantizados por la clase de iteradores bidireccionales.Los distintos conceptos de iterador forman una familia relacionada por refinamientos en su funcionalidad.Cada concepto de iterador tiene su propio conjunto de requisitos y algoritmos que funcionan con ellos límite de la necesidad sus suposiciones a los requisitos proporcionados por ese tipo de iterador.Se supone que un iterador de entrada se puede desreferenciar para hacer referencia a algún objeto y que puede incrementar el iterador siguiente de la secuencia.Éste es un conjunto mínimo de funcionalidad, pero es suficiente para poder comunicarse significativo sobre un intervalo de iteradores [_First, _Last) en el contexto de las funciones miembro de clases.
La opción de tipo de contenedor deben basarse en general en el tipo de búsqueda e insertar requerido por la aplicación.Los contenedores asociativos se optimizan para las operaciones de búsqueda, de inserción y eliminación.Las funciones miembro que explícitamente admite estas operaciones es eficaz, efectuandolas en una hora que sea por término medio proporcional al logaritmo del número de elementos en el contenedor.Insertar elementos no invalida ningún iterador, y quitar elementos reemplaza solo los iteradores que habían notificado específicamente en los elementos eliminados.
El multimap debe ser el contenedor asociativa choice si las condiciones que asocian los valores a las claves son satisfechas por la aplicación.Un modelo para este tipo de estructura es una lista ordenada de palabras clave con los valores de cadena asociados que proporcionan, por ejemplo, definiciones, donde las palabras siempre no están definidas de forma exclusiva.Si, en su lugar, las palabras clave se definidas de forma exclusiva de modo que las claves se únicas, un mapa sería el contenedor de la opción.Si, por otro lado, simplemente la lista de palabras fuera almacenada, un conjunto sería el contenedor correcto.Si varias apariciones de las palabras se permitidas, un conjunto múltiple sería la estructura apropiada del contenedor.
El multimap pide la secuencia que controla llamando a un objeto almacenado de función de key_compare escrito.Este objeto almacenado es una función de comparación que se puede tener acceso llamando a la función key_comp miembro.Los elementos suelen necesitar ser simplemente menos que comparables establecer este orden: para, con los dos elementos, poder determinar cualquiera que es equivalente (en el sentido de que ninguno es menor que otro) o que uno es menor que otro.Esto produce el orden entre los elementos distintos.En otra nota técnica, la función de comparación es un predicado binario que induce la ordenación parcial estricto en el sentido matemático estándar.Una f binaria de predicado (x, y) es un objeto de función que tiene dos objetos de argumento xe y y un valor devuelto de true o false.El orden impuesto a un conjunto es el orden débil estricto si el predicado binario es irreflexive, antisimétrico, y transitiva y si la equivalencia es transitiva, donde dos objetos x e y se definen para ser equivalentes cuando tanto f(x, y) y f(la y, x) es false.Si la condición más fuerte de igualdad entre las teclas reemplaza el de equivalencia, el orden se convierte en total (en el sentido de que todos los elementos están ordenados en sí) y que las claves se imperceptibles entre sí.
Members
Constructores
Construye multimap que está vacío o que es una copia de todo o parte de algún otro multimap. |
Typedefs
Un tipo que representa la clase de allocator para el objeto de multimap. |
|
Un tipo que proporciona un iterador bidireccional que pueda leer un elemento de const en multimap. |
|
Un tipo que proporciona un puntero a un elemento de const en multimap. |
|
Un tipo que proporciona una referencia a un elemento de const almacenados en multimap para leer y realizar operaciones de const. |
|
Un tipo que proporciona un iterador bidireccional que pueda leer cualquier elemento de const en multimap. |
|
Un entero con signo escribe que se puede usar para representar el número de elementos de multimap en un intervalo entre elementos indicada por los iteradores. |
|
Un tipo que proporciona la diferencia entre dos iteradores que hacen referencia a elementos dentro del mismo multimap. |
|
Un tipo que proporciona un objeto de función que puede comparar dos criterios de ordenación para determinar el orden relativo de dos elementos en multimap. |
|
Un tipo que describe el objeto del criterio de ordenación que constituye cada elemento de multimap. |
|
Un tipo que representa el tipo de datos almacenados en multimap. |
|
Un tipo que proporciona un puntero a un elemento de const en multimap. |
|
Un tipo que proporciona una referencia a un elemento almacenados en multimap. |
|
Un tipo que proporciona un iterador bidireccional que pueda leer o modificar un elemento de multimap invertido. |
|
Un entero sin signo escribe que proporciona un puntero a un elemento de const en multimap. |
|
Un tipo que proporciona un objeto de función que puede comparar dos elementos como criterio de ordenación para determinar el orden relativo en multimap. |
Funciones miembro
Devuelve un iterador que dirige el primer elemento de multimap. |
|
Devuelve un iterador const que dirige el primer elemento de multimap. |
|
Devuelve un iterador const que dirige la ubicación que funciona correctamente el último elemento de multimap. |
|
Borra todos los elementos de multimap. |
|
Devuelve el número de elementos de multimap cuya clave coincide con una clave parámetro- especificada. |
|
Devuelve un iterador const que dirige el primer elemento de multimap invertido. |
|
Devuelve un iterador const que dirige la ubicación que funciona correctamente el último elemento de multimap invertido. |
|
Inserta un elemento construido en el lugar en multimap. |
|
Inserta un elemento construido en el lugar en multimap, con una sugerencia de posición |
|
Comprueba si multimap está vacío. |
|
Devuelve un iterador que dirige la ubicación que funciona correctamente el último elemento de multimap. |
|
Encuentra el intervalo de elementos donde coincide con la clave del elemento un valor especificado. |
|
Quita un elemento o un intervalo de elementos de multimap de posiciones especificadas o quita los elementos que coinciden con una clave especificada. |
|
Devuelve un iterador que dirige la primera ubicación de un elemento en multimap que tiene un equivalente key en una clave especificada. |
|
Devuelve una copia del objeto de allocator utilizado para construir multimap. |
|
Inserta un elemento o un intervalo de elementos de multimap. |
|
Recupera una copia del objeto de comparación utilizado a claves ordenadas en multimap. |
|
Devuelve un iterador al primer elemento de multimap que con una clave a la que sea igual o mayor que una clave especificada. |
|
Devuelve la longitud máxima de multimap. |
|
Devuelve un iterador que dirige el primer elemento de multimap invertido. |
|
Devuelve un iterador que dirige la ubicación que funciona correctamente el último elemento de multimap invertido. |
|
Devuelve el número de elementos de multimap. |
|
Cambie los elementos de dos objetos de multimap. |
|
Devuelve un iterador al primer elemento de multimap que cuya clave es mayor que una clave especificada. |
|
La función miembro devuelve un objeto de función que determina el orden de elementos de multimap comparando los valores de clave. |
Operadores
Reemplaza los elementos de multimap con una copia de otro multimap. |
Requisitos
Header: <map>
Espacio de nombres: std
(key, value) pares se almacenan en un multimap como objetos de pair escrito.La clase de pares requiere el encabezado <utility>, que automáticamente se incluye por <map>.
Vea también
Referencia
Seguridad para subprocesos de la biblioteca estándar de C++
Biblioteca de plantillas estándar