Menu
Coddy logo textTech

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.

challenge icon

Sfida

Facile

Crea 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 n che rappresenta il numero di elementi da aggiungere inizialmente al set
  • Poi n interi da inserire nel set
  • Un intero m che rappresenta il numero di elementi da cercare
  • Poi m interi di cui verificare l'esistenza nel set

Il tuo programma dovrebbe:

  1. Creare un std::set<int> vuoto
  2. Leggere il numero di elementi da aggiungere e inserirli nel set usando .insert()
  3. Leggere il numero di elementi da cercare
  4. Per ogni elemento da cercare, usare il metodo .count() per verificare se è presente nel set
  5. Stampare messaggi appropriati in base al fatto che ogni elemento sia stato trovato o meno
  6. 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]: Found

Per gli elementi non trovati:

Searching for [number]: Not found

Riepilogo 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;
}
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