Conjuntos en C++

Establecer (establecer) — es un contenedor que ordena automáticamente los elementos añadidos en orden ascendente. Pero al agregar valores idénticos, set solo almacenará una instancia del mismo (multiset - multiset- puede contener duplicados). Cuando se agrega un nuevo elemento al conjunto, inmediatamente encaja en su lugar para no violar el orden de clasificación.  

Los conjuntos en C++ se definen en la biblioteca de plantillas estándar STL a través de la clase set (multiset).

Los conjuntos son árboles binarios rojo-negro. Las operaciones de búsqueda, eliminación e inserción tienen una complejidad logarítmica.
 
Para usar conjuntos, debe incluir la biblioteca “set”: #incluir <establecer>
Establecer declaración:
establecer<int> miConjunto; // Declarar un conjunto vacío. multiconjunto<int> miConjunto; // Declarar un conjunto múltiple vacío.  
Funciones para trabajar con un conjunto (set)
 
empty() - comprueba la ausencia de elementos en el contenedor
 
size() - Devuelve el número de elementos en el contenedor
 
clear() - Borra el contenedor
 
insert() - Inserta elementos
 
erase() - Elimina elementos
 
count() - Devuelve el número de elementos que coinciden con una clave determinada
 
find() - Encuentra un elemento con una clave específica
 
lower_bound() - Devuelve un iterador al primer elemento no menor que el valor dado
 
upper_bound() - Devuelve un iterador al primer elemento mayor que el valor especificado
 

 
Ejemplo de set y multiset
#incluye <iostream> #incluir <establecer> utilizando el espacio de nombres estándar; int principal() { establecer<int> miConjunto1; // declaró un conjunto vacío multiconjunto<int> miConjunto2; // declaró un multiconjunto vacío // agregar elementos al conjunto miConjunto1.insertar(1); miConjunto1.insertar(2); miConjunto1.insertar(3); miConjunto1.insertar(1); // agregar elementos al conjunto múltiple miConjunto2.insertar(1); miConjunto2.insertar(2); miConjunto2.insertar(3); miConjunto2.insertar(1); establecer<int>::iterarlo; //crear un iterador for(it = mySet1.begin(); it != mySet1.end(); it++) { // Mostrar todos los elementos cout << (*it) << " "; // conjuntos } cout << fin; for(it = mySet2.begin(); it != mySet2.end(); it++) { // Muestra todos los elementos cout << (*it) << " "; // multiconjuntos } devolver 0; }

Usando set con un comparador
Un ejemplo de un comparador para crear un conjunto ordenado en orden descendente. estructura cmp { operador bool() (int a, int b) const{ devolver un > b; } };
Usar un comparador al crear un set. establecer <int, cmp> s;