C++ Sets
#include <set> using std::set; set<Key, Compare, Alloc>
En C++ un Set o Conjunto es un contenedor que representa un conjunto ordenado de elementos únicos, 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>.
[editar] Tipos de Datos
| Tipo Miembro | Definición |
|---|---|
| key_type | Key (el tipo de datos del conjunto) |
| value_type | Key (el tipo de datos del conjunto) |
| size_type | Entero sin signo que representa cantidades (usualmente size_t) |
| difference_type | Entero con signo que representa diferencias (usualmente ptrdiff_t) |
| key_compare | Compare |
| value_compare | Compare |
| allocator_type | Allocator |
| reference | Allocator::reference |
| const_reference | Allocator::const_reference |
| pointer | Allocator::pointer |
| const_pointer | Allocator::const_pointer |
| iterator | Iterador escribible bidireccional |
| const_iterator | Iterador constante bidireccional |
| reverse_iterator | reverse_iterator<iterator> |
| const_reverse_iterator | reverse_iterator<const_iterator> |
[editar] Miembros
| Constructores | constructores por defecto para gestionar, reservar y copiar sets |
| Operators | asigna y compara sets |
| begin | iterador que apunta al principio del set |
| clear | elimina todos los elementos del set |
| count | cuenta si un elemento existe o no en el set |
| empty | determina si el set está vacío |
| end | iterador que apunta al final de un set |
| equal_range | devuelve iteradores que apuntan al inicio y final de un rango dentro del set que corresponde a un valor en específico |
| erase | elimina elementos de un set |
| find | busca un elemento y devuelve un iterador apuntando a éste |
| insert | inserta (agrega) elementos a un set |
| 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 set puede almacenar |
| rbegin | iterador reverso que apunta al final (inicio inverso) del set |
| rend | iterador reverso que apunta al inicio (final inverso) del set |
| size | cantidad de elementos en el set |
| swap | intercambia los valores de este set 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 diccionario almacena pares "clave=valor" relacionados.
Un set sólo puede almacenar elementos únicos. Para almacenar elementos repetidos se usa un multiset.
Un set almacena y ordena sus elementos basándose en el criterio de comparación Compare que debe modelar un eswiki: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".