set stl
Impara rapidamente SET in STL con semplici esempi.
Daremo uno sguardo approfondito al contenitore STL - Set, qui in questo tutorial. I set sono contenitori associativi con elementi univoci in un ordine specifico.
Il valore di un elemento nel set è anche la chiave utilizzata per accedervi. Tutti gli elementi del set devono essere unici. Non è possibile modificare gli elementi nel set una volta inseriti. Tuttavia, possiamo inserire o eliminare gli elementi.
=> Controlla qui per la serie completa di formazione GRATUITA C ++.
Cosa imparerai:
SET In STL
Per implementare set, dobbiamo includere l'intestazione nel nostro programma.
miglior pulitore di registro per Windows 7 64 bit
#include
Possiamo dichiarare un set come segue:
set myset;
Per esempio,se vogliamo un set, il myset di un elemento con tipo intero, allora possiamo dichiarare il set come:
set myset;
Operazioni sul set
Il contenitore set supporta anche operazioni simili come una mappa che abbiamo già discusso. Di seguito sono riportate alcune delle operazioni di base supportate da set.
- inizio : Restituisce l'iteratore al primo elemento dell'insieme.
- fine : Restituisce l'iteratore all'elemento che segue l'ultimo elemento dell'insieme.
- inserire : Inserisce un nuovo elemento nel set.
L'operazione di inserimento per il set ha tre varianti:
-
-
- inserire (elemento): Questo inserisce direttamente l'elemento nel set e riordina il set.
- inserire (posizione, suggerimento): Qui specifichiamo la posizione in cui inserire l'elemento.
- inserire (iterator.begin (), iterator.end ()): In questa variazione, possiamo inserire direttamente l'intervallo nel set come un array o un altro set.
-
- cancellare : Rimuove un elemento dal set.
- taglia : Restituisce la dimensione del set.
- max_size : Restituisce la dimensione massima che il set può contenere.
- vuoto : Restituisce se il set è vuoto.
- chiaro : Rimuove tutti gli elementi dal set.
- trova : Trova un elemento nel set. Se viene trovato un elemento, restituisce l'iteratore a quell'elemento nell'insieme. Se non viene trovato, restituisce un iteratore alla fine dell'insieme.
Di seguito è riportato un programma che dimostra l'utilizzo di alcune importanti funzioni di SET.
#include #include #include using namespace std; int main() { set myset; myset.insert(140); myset.insert(130); myset.insert(160); myset.insert(120); cout<<'
Size of myset: '< Produzione:
Dimensioni del myset: 4
Il set myset è: 120130140160
Dopo aver inserito 100, il set myset è: 100120130140160
Dopo aver inserito l'array arr, il set myset è: 100110120130140150160
Dopo la rimozione di elementi inferiori a 130, myset: 130140150160

Come mostrato nell'output sopra, creiamo un set utilizzando una semplice funzione di inserimento.
Successivamente, inseriamo l'elemento 100 nell'insieme utilizzando un'altra variante della funzione di inserimento passando il riferimento all'iteratore e il valore dell'elemento 100. Vediamo che una volta che l'inserimento è terminato, l'insieme viene riordinato e l'ordine degli elementi viene mantenuto.
Successivamente inseriamo un array {110,150,150} utilizzando la funzione di inserimento. Se vedi l'output del set visualizzato dopo aver inserito un array, vediamo che nel set viene immesso un solo valore di 150. Questo perché tutti gli elementi del set sono unici.
Visualizziamo anche le dimensioni del set. Successivamente, utilizzando la funzione trova troviamo gli elementi che sono inferiori a 130 e quindi chiamiamo la funzione di cancellazione per rimuovere questi elementi. Quindi visualizziamo l'insieme risultante.
Tutto sta nel contenitore dell'insieme. Successivamente, discuteremo il multiset che è un'estensione del contenitore set.
Multiset
Un multiset è un contenitore associativo simile a un set in tutti gli aspetti tranne una differenza, ovvero più elementi possono avere lo stesso valore.
La dichiarazione per il multiset è la seguente:
multiset mset;
Un multinsieme di elementi interi può essere dichiarato come:
multiset mset;
Diverse operazioni supportate da multiset sono simili a quelle supportate da set.
Ora discuteremo direttamente un esempio multiset che dimostra l'operazione che usa.
#include #include #include using namespace std; int main() { multiset myset; myset.insert(11); myset.insert(13); myset.insert(13); myset.insert(10); cout<<'
Size of myset: '< Produzione:
Dimensioni del myset: 4
Dopo aver inserito quattro elementi, il multiset myset è: 10 11 13
13
Dopo aver inserito 15, il multiset myset è: 10 11 13 13 15
Dopo la rimozione di elementi inferiori a 15, myset: 15
Lo screenshot dell'output è fornito di seguito:

primi 10 fornitori di servizi di sicurezza gestiti
Come mostrato nell'output precedente, inizialmente inseriamo quattro elementi nel multiset di cui due sono uguali. Ma a differenza di un set, questi elementi vengono inseriti con successo nel multiset. Quindi inseriamo un altro elemento 15 fornendo la posizione tramite un iteratore, che viene inserito con successo.
Successivamente, troviamo elementi inferiori a 15 nel multiset e chiamiamo la funzione di cancellazione su questi elementi. Infine, visualizziamo il multiset.
Set non ordinato
Finora abbiamo discusso set e multiset in questo tutorial.
Sebbene l'insieme sia una sequenza ordinata di chiavi univoche, abbiamo un altro contenitore associativo che è chiamato 'insieme non ordinato' che è un insieme di chiavi o elementi che vengono memorizzati in qualsiasi ordine. Ciò significa che gli elementi nell'insieme non ordinato sono 'non ordinati'.
Simile a una mappa non ordinata, il set non ordinato viene implementato anche utilizzando una tabella hash in cui le chiavi vengono sottoposte a hashing negli indici della tabella hash. A causa dell'utilizzo di una tabella hash, non è possibile mantenere l'ordine degli elementi in contrasto con l'insieme che utilizza una struttura ad albero bilanciata.
L'intestazione per l'implementazione di un set non ordinato è.
#include
Dichiariamo una mappa non ordinata di tipo intero come segue:
Unordered_set uset;
Le operazioni supportate da unordered_set sono simili a quelle supportate da unordered_map che è discusso nei nostri tutorial su map.
Di seguito è riportato un esempio che mostra le varie operazioni su unordered_set.
#include #include using namespace std; int main() { unordered_set uset; unordered_set :: iterator it; for(int i=0;i<5;i++){ uset.insert(i+2); } cout<<'
Size of uset: '< Produzione:
Dimensione di utilizzo: 5
Gli elementi nel set non ordinato sono: 99 39 6 5 26 4 3 13 2
Chiave trovata = 13
umap bucket_count: 11
bucket_size: 2
Lo screenshot dell'output di cui sopra è fornito di seguito.

Come mostrato nell'output precedente, inseriamo prima 5 elementi nell'insieme non ordinato e quindi inseriamo altri 4 elementi che dimostrano l'uso delle variazioni della funzione di inserimento. Quindi visualizziamo il contenuto dell'insieme non ordinato.
Successivamente, utilizziamo la funzione find per trovare se la chiave = 13 è presente o meno nell'insieme non ordinato.
Successivamente, mostriamo altre due funzioni 'bucket_count' e 'bucket_size'. Queste funzioni sono legate all'implementazione interna della mappa non ordinata.
Questo contenitore supporta anche le altre funzioni e funzioni dell'iteratore come max_size, clear, erase, empty, ecc. Che è simile ad altri contenitori STL.
Conclusione
Con questo, siamo arrivati alla fine del nostro tutorial su SET in STL.
Ci auguriamo che gli argomenti trattati come parte di questo tutorial STL ti aiutino a comprendere meglio STL e i suoi vari contenitori.
domande e risposte dell'intervista php per 1 anno di esperienza
=> Leggi qui la popolare serie di formazione C ++.
Lettura consigliata
- Coda prioritaria in AWL
- Elenchi in STL
- MAPPE In STL
- Pile e code in STL
- Iteratori in STL
- Array in STL
- Stringhe, coppie e tuple in STL
- Algoritmi in STL