Insiemi in C++

Imposta (imposta) — è un contenitore che ordina automaticamente gli elementi aggiunti in ordine crescente. Ma quando si aggiungono valori identici, set ne memorizzerà solo un'istanza (multiset - multiset- può contenere duplicati). Quando un nuovo elemento viene aggiunto all'insieme, va immediatamente a posto in modo da non violare l'ordinamento.  

Gli insiemi in C++ sono definiti nella libreria di modelli standard STL tramite la classe set (multiset).

Gli insiemi sono alberi binari rosso-neri. Le operazioni di ricerca, eliminazione e inserimento hanno una complessità logaritmica.
 
Per utilizzare i set, devi includere la libreria “set”: #include <imposta>
Imposta dichiarazione:
imposta<int> mioSet; // Dichiarazione di un insieme vuoto. multiinsieme<int> mioSet; // Dichiarazione di un multiset vuoto.  
Funzioni per lavorare con un set (set)
 
empty() - verifica l'assenza di elementi nel contenitore
 
size() - Restituisce il numero di elementi nel contenitore
 
clear() - Cancella il contenitore
 
insert() - Inserisce elementi
 
erase() - Rimuove gli elementi
 
count() - Restituisce il numero di elementi corrispondenti a una data chiave
 
find() - Trova un elemento con una chiave specifica
 
lower_bound() - Restituisce un iteratore al primo elemento non inferiore al valore dato
 
upper_bound() - Restituisce un iteratore al primo elemento maggiore del valore specificato
 

 
Esempio di insiemi e multiinsiemi
#include <iostream> #include <imposta> utilizzando lo spazio dei nomi std; int principale() { imposta<int> mioSet1; // ha dichiarato un insieme vuoto multiinsieme<int> mioSet2; // ha dichiarato un multiset vuoto // aggiunge elementi all'insieme mySet1.insert(1); mioInsieme1.insert(2); mioSet1.insert(3); mySet1.insert(1); // aggiunge elementi al multiset mySet2.insert(1); mioInsieme2.insert(2); mySet2.insert(3); mySet2.insert(1); set<int>::iterator it; // crea un iteratore for(it = mySet1.begin(); it != mySet1.end(); it++) { // Visualizza tutti gli elementi cout << (*it) << " "; // imposta } cout << finel; for(it = mySet2.begin(); it != mySet2.end(); it++) { // Output di tutti gli elementi cout << (*it) << " "; // multiset } ritorno 0; }

Utilizzo di set con un comparatore
Un esempio di un comparatore per creare un insieme ordinato in ordine decrescente. struct cmp { operatore bool() ( int a, int b) const{ restituire un > B; } };
Utilizzo di un comparatore durante la creazione di un set. impostare <int, cmp> S;