Insieme
Lezione 8 di 23 del corso C++ - Libreria standard dei template di Coddy.
In questo capitolo imparerai a conoscere i contenitori associativi e il loro funzionamento. Iniziamo con la struttura dati set.
Il set di C++ è un tipo di contenitore associativo che memorizza elementi univoci dello stesso tipo in ordine ordinato. Ciò significa che ogni elemento può comparire una sola volta in un set.
I set vengono usati spesso nella programmazione competitiva quando è necessario memorizzare elementi univoci in ordine senza spendere più tempo e complessità usando altre strutture dati, come gli array, gli algoritmi di ordinamento e la rimozione degli elementi ripetuti.
set<int> mySet = {5, 10, 3, 5};Implementiamo i set usando il file header #include <set>, oppure possiamo includere tutti i file header come menzionato nelle lezioni precedenti con #include <bits/stdc++.h>
set<int> mySet = {5, 10, 3, 5};
for (int i = mySet.begin(); i != mySet.end(); i++)
cout << *i << " ";Output:
3 5 10Come puoi vedere sopra, abbiamo dichiarato un set con valori iniziali. Abbiamo usato un iteratore che punta al primo elemento, attraversato il set e stampato tutti gli elementi. Possiamo vedere che il set stesso ha rimosso gli elementi ripetuti e li ha anche ordinati, iniziando da quello più piccolo.
Inseriamo elementi nel set usando il metodo insert().
mySet.insert(50);Inoltre, i valori degli elementi non possono essere modificati una volta aggiunti al set: è possibile solo rimuoverli e aggiungere nuovi elementi.
Metodi di set
| Metodo | Funzionalità |
| begin() | Restituisce un iteratore che punta al primo elemento del set |
| end() | Restituisce un iteratore che punta all'ultimo elemento del set |
| size() | Restituisce il numero di elementi nel set |
| empty() | Restituisce se il set è vuoto (1) oppure no (0) |
| count() | Restituisce 1 se un elemento è presente nel set e 0 altrimenti |
Sfida
FacileData una sequenza di 10 numeri in input. Usando un insieme, stampa solo i numeri unici.
Input
5
10
1
5
3
5
10
8
6
7Output
5
10
1
3
8
6
7Provalo tu
#include <set>
#include <iostream>
using namespace std;
int main()
{
// Enter your code here
return 0;
}Tutte le lezioni di C++ - Libreria standard dei template
Esercitati da solo: Compilatore C++ online