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.
Wyzwanie
ŁatwyUtwó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
nreprezentująca liczbę elementów, które należy początkowo dodać do zbioru - Następnie
nliczb całkowitych, które należy wstawić do zbioru - Liczba całkowita
mreprezentująca liczbę elementów, których obecność należy sprawdzić - Następnie
mliczb całkowitych, których obecność w zbiorze należy sprawdzić
Twój program powinien:
- Utworzyć pusty
std::set<int> - Wczytać liczbę elementów do dodania i wstawić je do zbioru za pomocą
.insert() - Wczytać liczbę elementów, których obecność należy sprawdzić
- Dla każdego sprawdzanego elementu użyć metody
.count(), aby sprawdzić, czy znajduje się w zbiorze - Wypisać odpowiednie komunikaty informujące, czy każdy element został znaleziony
- 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]: FoundDla elementów, których nie znaleziono:
Searching for [number]: Not foundPodsumowanie 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;
}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
1Wskaźniki i pamięć
Czym jest wskaźnik?Operator pobrania adresuOperator dereferencjiWskaźniki zeroweWskaźniki i tabliceDynamiczne zarządzanie pamięcią za pomocą „new”Zwalnianie pamięci za pomocą „delete”Podsumowanie — ćwiczenia ze wskaźnikami2Wektory (tablice dynamiczne)
Wprowadzenie do std::vectorTworzenie wektoraDodawanie elementówDostęp do elementówRozmiar wektoraIterowanie za pomocą pętli forPętla for oparta na zakresieUsuwanie elementówPodsumowanie — operacje na wektorach5Projekt: Narzędzie do zarządzania zapasami
Konfiguracja projektuDodawanie i aktualizowanie produktów3Projekt: narzędzie do listy zadań
Przegląd projektuDodawanie zadania6Zbiory (unikalne elementy)
Wprowadzenie do std::setTworzenie zbioru i dodawanie elementówSprawdzanie obecności elementówUsuwanie elementówIterowanie po zbiorzePodsumowanie — unikalne liczbyPoćwicz samodzielnie: Kompilator C++ online