Menu
Coddy logo textTech

Creare un set e aggiungere elementi

Fa parte della sezione Logica e flusso del percorso C++ di Coddy. Lezione 36 di 56.

Ora che sai cos'è un insieme, impariamo a crearne uno e ad aggiungervi elementi. Per aggiungere elementi a un std::set, usa il metodo .insert().

Ecco come creare un set vuoto e aggiungere elementi:

std::set<int> numbers;
numbers.insert(5);
numbers.insert(2);
numbers.insert(8);

La caratteristica più importante degli insiemi è che rifiutano automaticamente i duplicati. Se provi a inserire due volte lo stesso valore, l’insieme rimane invariato:

numbers.insert(5);  // Questo non aggiungerà un altro 5
numbers.insert(5);  // Neanche questo lo farà

Dopo tutti questi inserimenti, il tuo insieme conterrà solo tre elementi univoci: 2, 5 e 8 (ordinati automaticamente). I tentativi duplicati di inserire 5 vengono semplicemente ignorati, ed è proprio questo che rende gli insiemi così utili per mantenere raccolte di dati univoci.

challenge icon

Sfida

Facile

Crea un programma che dimostri la caratteristica degli elementi univoci di std::set aggiungendo diversi numeri interi a un insieme, inclusi valori duplicati, e poi visualizzando la dimensione finale per dimostrare che i duplicati vengono ignorati automaticamente.

Verranno forniti i seguenti input:

  • Un numero intero n che rappresenta il numero di numeri interi da inserire
  • Poi n numeri interi da inserire nell'insieme

Il programma deve:

  1. Creare un std::set<int> vuoto
  2. Leggere il numero di numeri interi da inserire
  3. Usare un ciclo per leggere ogni numero intero e inserirlo nell'insieme usando il metodo .insert()
  4. Dopo tutti gli inserimenti, stampare la dimensione finale dell'insieme usando il metodo .size()
  5. Stampare un messaggio che indichi quanti tentativi di inserimento duplicati sono stati ignorati

Usa il seguente formato di output esatto:

Set size: [final_size]
Duplicates ignored: [number_of_duplicates]

Il numero di duplicati ignorati deve essere calcolato come la differenza tra il numero totale di tentativi di inserimento e la dimensione finale dell'insieme. Questo dimostra che gli insiemi mantengono automaticamente l'unicità rifiutando i valori duplicati, caratteristica fondamentale per memorizzare raccolte di elementi univoci.

Provalo tu

#include <iostream>
#include <set>
using namespace std;

int main() {
    // Leggi il numero di interi da inserire
    int n;
    cin >> n;
    
    // Crea un insieme vuoto
    set<int> mySet;
    
    // TODO: Scrivi qui il tuo codice
    // Usa un ciclo per leggere n interi e inserirli nell'insieme
    // Calcola quanti duplicati sono stati ignorati
    
    // Visualizza i risultati
    cout << "Set size: " << mySet.size() << endl;
    cout << "Duplicates ignored: " << /* calcola i duplicati */ << endl;
    
    return 0;
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore C++ online