Menu
Coddy logo textTech

Sprawdzanie obecności elementów

Część sekcji Logika i przepływ programu ścieżki C++ w Coddy. Lekcja 37 z 56.

Podczas pracy ze zbiorami często trzeba sprawdzić, czy określony element istnieje, zanim wykona się na nim operacje. Metoda .count() umożliwia prostą weryfikację, czy element znajduje się w zbiorze.

Podobnie jak w przypadku map, metoda .count() zwraca 1, jeśli element istnieje w zbiorze, i 0, jeśli go nie ma. Dzięki temu świetnie sprawdza się w warunkach:

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

To podejście jest znacznie bezpieczniejsze niż próba bezpośredniego dostępu do elementów, szczególnie gdy nie masz pewności, czy istnieją. Możesz użyć .count(), aby zweryfikować dane wprowadzone przez użytkownika, zapobiegać błędom lub podejmować decyzje na podstawie tego, co jest obecnie przechowywane w twoim zbiorze.

challenge icon

Wyzwanie

Łatwy

Utwórz program, który pokazuje, jak bezpiecznie sprawdzić, czy elementy istnieją w std::set, zanim wykonasz na nich operacje. To wyzwanie sprawdzi Twoje zrozumienie metody .count(), służącej do weryfikacji elementów.

Podane zostaną następujące dane wejściowe:

  • Liczba całkowita n reprezentująca liczbę elementów, które należy początkowo dodać do zbioru
  • Następnie n liczb całkowitych, które należy wstawić do zbioru
  • Liczba całkowita m reprezentująca liczbę elementów, których obecność należy sprawdzić
  • Następnie m liczb całkowitych, których obecność w zbiorze należy sprawdzić

Twój program powinien:

  1. Utworzyć pusty std::set<int>
  2. Wczytać liczbę elementów do dodania i wstawić je do zbioru za pomocą .insert()
  3. Wczytać liczbę elementów, których obecność należy sprawdzić
  4. Dla każdego sprawdzanego elementu użyć metody .count(), aby sprawdzić, czy znajduje się w zbiorze
  5. Wypisać odpowiednie komunikaty informujące, czy każdy element został znaleziony
  6. Po zakończeniu wszystkich sprawdzeń wypisać łączną liczbę znalezionych elementów

Użyj następującego dokładnego formatu wyjściowego:

Dla każdego wyniku sprawdzenia:

Searching for [number]: Found

Dla elementów, których nie znaleziono:

Searching for [number]: Not found

Podsumowanie na końcu:

Total found: [count] out of [total_searches]

Użyj numbers.count(searchValue), aby sprawdzić, czy element znajduje się w zbiorze. Jeśli metoda zwróci 1, element istnieje; jeśli zwróci 0, element nie istnieje. Użyj licznika, aby śledzić, ile elementów udało się znaleźć podczas sprawdzania.

Spróbuj swoich sił

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

int main() {
    // Wczytaj liczbę elementów do dodania do zbioru
    int n;
    cin >> n;
    
    // Utwórz pusty zbiór
    set<int> numbers;
    
    // Wczytaj i dodaj n elementów do zbioru
    for (int i = 0; i < n; i++) {
        int element;
        cin >> element;
        numbers.insert(element);
    }
    
    // Wczytaj liczbę elementów do wyszukania
    int m;
    cin >> m;
    
    int foundCount = 0;
    
    // TODO: Napisz swój kod poniżej
    // Dla każdego wyszukiwanego elementu:
    // 1. Wczytaj szukaną wartość
    // 2. Użyj numbers.count(searchValue), aby sprawdzić, czy istnieje
    // 3. Wypisz odpowiedni komunikat
    // 4. Zaktualizuj foundCount, jeśli element został znaleziony
    
    // Wypisz podsumowanie
    cout << "Total found: " << foundCount << " out of " << m << endl;
    
    return 0;
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator C++ online