Verificare la presenza di elementi
Fa parte della sezione Logica e flusso del percorso C++ di Coddy. Lezione 37 di 56.
Quando lavori con gli insiemi, spesso devi verificare se un elemento specifico esiste prima di eseguire operazioni su di esso. Il metodo .count() offre un modo semplice per verificare se un elemento è presente nel tuo insieme.
Proprio come per le mappe, il metodo .count() restituisce 1 se l'elemento esiste nell'insieme e 0 se non esiste. Questo lo rende perfetto per i controlli condizionali:
std::set<int> numbers = {10, 20, 30};
if (numbers.count(20)) {
std::cout << "Found 20 in the set!" << std::endl;
} else {
std::cout << "20 is not in the set" << std::endl;
}Questo approccio è molto più sicuro che cercare di accedere direttamente agli elementi, soprattutto quando non sei sicuro che esistano. Puoi usare .count() per convalidare l'input dell'utente, prevenire errori o prendere decisioni in base a ciò che è attualmente memorizzato nel tuo set.
Sfida
FacileCrea un programma che mostri come verificare in modo sicuro l'esistenza di elementi in un std::set prima di eseguire operazioni su di essi. Questa sfida metterà alla prova la tua comprensione del metodo .count() per verificare gli elementi.
Verranno forniti i seguenti input:
- Un intero
nche rappresenta il numero di elementi da aggiungere inizialmente al set - Poi
ninteri da inserire nel set - Un intero
mche rappresenta il numero di elementi da cercare - Poi
minteri di cui verificare l'esistenza nel set
Il tuo programma dovrebbe:
- Creare un
std::set<int>vuoto - Leggere il numero di elementi da aggiungere e inserirli nel set usando
.insert() - Leggere il numero di elementi da cercare
- Per ogni elemento da cercare, usare il metodo
.count()per verificare se è presente nel set - Stampare messaggi appropriati in base al fatto che ogni elemento sia stato trovato o meno
- Dopo tutte le ricerche, stampare il numero totale di elementi che sono stati trovati
Usa il seguente formato di output esatto:
Per ogni risultato della ricerca:
Searching for [number]: FoundPer gli elementi non trovati:
Searching for [number]: Not foundRiepilogo finale:
Total found: [count] out of [total_searches]Usa numbers.count(searchValue) per verificare se un elemento è presente nel set. Se restituisce 1, l'elemento è presente; se restituisce 0, l'elemento non è presente. Tieni un contatore per monitorare quanti elementi sono stati trovati durante le operazioni di ricerca.
Provalo tu
#include <iostream>
#include <set>
using namespace std;
int main() {
// Leggi il numero di elementi da aggiungere all'insieme
int n;
cin >> n;
// Crea un insieme vuoto
set<int> numbers;
// Leggi e inserisci n elementi nell'insieme
for (int i = 0; i < n; i++) {
int element;
cin >> element;
numbers.insert(element);
}
// Leggi il numero di elementi da cercare
int m;
cin >> m;
int foundCount = 0;
// TODO: Scrivi il tuo codice qui sotto
// Per ogni elemento da cercare:
// 1. Leggi il valore da cercare
// 2. Usa numbers.count(searchValue) per verificare se esiste
// 3. Stampa il messaggio appropriato
// 4. Aggiorna foundCount se l'elemento viene trovato
// Stampa il riepilogo
cout << "Total found: " << foundCount << " out of " << m << 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