Multiconjuntos C++
#include <set> using std::multiset; multiset<Key, Compare, Alloc>
En C++ un Multiset o Multiconjunto es un contenedor que representa un conjunto ordenado de elementos que pueden estar repetidos, de tipo Key. La ordenación de los elementos es hecha a base del criterio de comparación Compare, que es por defecto std::less<Key>. El almacenamiento de los elementos es gestionado por el criterio de gestión de memoria Alloc, que es por defecto std::allocator<Key>.
| Constructores | constructores por defecto para gestionar, reservar y copiar conjuntos |
| Operators | asigna y compara conjuntos |
| begin | iterador que apunta al principio del conjunto |
| clear | elimina todos los elementos del conjunto |
| count | cuenta cuántas veces existe un elemento el conjunto |
| empty | determina si el conjunto está vacío |
| end | iterador que apunta al final de un conjunto |
| equal_range | devuelve iteradores que apuntan al inicio y final de un rango dentro del conjunto que corresponde a un valor en específico |
| erase | elimina elementos de un conjunto |
| find | busca un elemento y devuelve un iterador apuntando a éste |
| insert | inserta (agrega) elementos a un conjunto |
| key_comp | devuelve el criterio usado para comparar Keys |
| lower_bound | devuelve iterador apuntando al punto más bajo donde se puede insertar el elemento |
| max_size | máximo número de elementos que el conjunto puede almacenar |
| rbegin | iterador reverso que apunta al final (inicio inverso) del conjunto |
| rend | iterador reverso que apunta al inicio (final inverso) del conjunto |
| size | cantidad de elementos en el conjunto |
| swap | intercambia los valores de este conjunto con los de otro |
| upper_bound | devuelve iterador apuntando al punto más alto donde se puede insertar el elemento |
| value_comp | devuelve el criterio usado para comparar los valores |
[editar] Contenedores Relacionados
En C++ **set** es el contenedor por asociativo para almacenar elementos sencillos. El contenedor relacionado map (diccionarios) almacena pares "clave=valor" relacionados. Las variantes multiset y multimap permiten almacenar valores repetidos.
Un multiset puede almacenar varias copias de un mismo valor. Para almacenar valores únicos se utiliza un set.
Un multiset almacena y ordena sus elementos basándose en el criterio de comparación Compare que debe modelar un orden parcial (por ejemplo, "menor-que"). En el próximo estándar, C++11, se puede almacenar elementos basándose solamente en un criterio de igualdad usando un unordered_set que ya está presente en algunos compiladores de C++ con soporte para las herramientas "tr1".