Menu
Coddy logo textTech

Iterowanie po zbiorze

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

Skoro potrafisz już dodawać elementy do zbioru, sprawdzać je i usuwać, nauczmy się iterować po wszystkich elementach zbioru. Pętla for oparta na zakresie to najczytelniejszy sposób odwiedzenia każdego elementu.

Oto jak iterować po zbiorze:

std::set<std::string> fruits = {"banana", "apple", "cherry"};

for (const std::string& fruit : fruits) {
    std::cout << fruit << std::endl;
}

Najważniejszą cechą, o której warto pamiętać, jest to, że zbiory automatycznie zachowują posortowaną kolejność. Gdy iterujesz po zbiorze owoców powyżej, wynikiem będzie "apple", "banana", "cherry" — a nie kolejność, w jakiej je wstawiono. To automatyczne sortowanie jest jedną z kluczowych zalet korzystania z std::set.

Ta posortowana iteracja sprawia, że zbiory świetnie nadają się do wyświetlania danych w kolejności alfabetycznej lub numerycznej bez konieczności ręcznego sortowania. Niezależnie od tego, czy pracujesz z liczbami, ciągami znaków, czy innymi porównywalnymi typami, zbiór zawsze przedstawi je w ich naturalnej, posortowanej kolejności.

challenge icon

Wyzwanie

Łatwy

Utwórz program demonstrujący funkcję automatycznego sortowania w std::set poprzez dodawanie słów do zbioru, a następnie iterowanie po nich, aby wyświetlić je w kolejności alfabetycznej. To wyzwanie sprawdzi, czy rozumiesz pętle for oparte na zakresie w przypadku zbiorów oraz sposób, w jaki zbiory zachowują posortowaną kolejność.

Dane wejściowe będą zawierać:

  • Liczbę całkowitą n oznaczającą liczbę słów do dodania do zbioru
  • Następnie n ciągów znaków reprezentujących słowa, które należy wstawić do zbioru

Twój program powinien:

  1. Utworzyć pusty std::set<std::string>
  2. Wczytać liczbę słów do dodania
  3. Użyć pętli, aby wczytać każde słowo i wstawić je do zbioru za pomocą metody .insert()
  4. Użyć pętli for opartej na zakresie, aby iterować po zbiorze i wyświetlić każde słowo
  5. Po wyświetleniu wszystkich słów podać łączną liczbę unikalnych słów w zbiorze

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

Dla każdego słowa w zbiorze (w kolejności alfabetycznej):

[word]

Podsumowanie na końcu:

Total unique words: [count]

Użyj pętli for opartej na zakresie o składni for (const std::string& word : wordSet), aby iterować po wszystkich elementach zbioru. Zbiór automatycznie wyświetli słowa w kolejności alfabetycznej, demonstrując jedną z kluczowych zalet korzystania z std::set. Pamiętaj, że jeśli w danych wejściowych pojawią się powtarzające się słowa, zbiór automatycznie je zignoruje, więc wyświetlone zostaną tylko unikalne słowa.

Spróbuj swoich sił

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

int main() {
    // Wczytaj liczbę słów
    int n;
    cin >> n;
    
    // Utwórz pusty zbiór do przechowywania słów
    set<string> wordSet;
    
    // TODO: Napisz tutaj swój kod
    // Wczytaj n słów i dodaj je do zbioru
    // Użyj pętli for opartej na zakresie, aby przejść przez zbiór i wypisać każde słowo
    // Wypisz łączną liczbę unikalnych słów
    
    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