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.
Sfida
FacileCrea 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
nche rappresenta il numero di numeri interi da inserire - Poi
nnumeri interi da inserire nell'insieme
Il programma deve:
- Creare un
std::set<int>vuoto - Leggere il numero di numeri interi da inserire
- Usare un ciclo per leggere ogni numero intero e inserirlo nell'insieme usando il metodo
.insert() - Dopo tutti gli inserimenti, stampare la dimensione finale dell'insieme usando il metodo
.size() - 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;
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Puntatori e memoria
Che cos'è un puntatore?Operatore indirizzoOperatore di dereferenziazionePuntatori nulliPuntatori e arrayMemoria dinamica con 'new'Liberare la memoria con 'delete'Riepilogo - Esercizi sui puntatori2Vettori (array dinamici)
Introduzione a std::vectorCreare un vettoreAggiungere elementiAccedere agli elementiDimensione del vettoreIterare con un ciclo forCiclo for basato su intervalloRimuovere elementiRiepilogo - Operazioni sui vettori5Progetto: strumento per l’inventario
Configurazione del progettoAggiunta e aggiornamento degli articoli3Progetto: Strumento per l’elenco delle attività
Panoramica del progettoAggiungere un’attività6Insiemi (elementi unici)
Introduzione a std::setCreare un set e aggiungere elementiVerificare la presenza di elementiRimuovere elementiIterare su un setRiepilogo - numeri uniciEsercitati da solo: Compilatore C++ online