Zbiór
Lekcja 8 z 23 w kursie C++ – Standardowa biblioteka szablonów w Coddy.
W tym rozdziale poznasz kontenery asocjacyjne i dowiesz się, jak działają. Zaczniemy od struktury danych set.
Kontener Set w C++ to rodzaj kontenera asocjacyjnego, który przechowuje unikalne elementy tego samego typu w posortowanej kolejności. Oznacza to, że każdy element może wystąpić w zbiorze tylko raz.
Zbiory są często wykorzystywane w programowaniu konkursowym, gdy trzeba przechowywać unikalne elementy w posortowanej kolejności, nie poświęcając więcej czasu i nie zwiększając złożoności przez używanie innych struktur danych, takich jak tablica, algorytmy sortowania i usuwanie powtarzających się elementów.
set<int> mySet = {5, 10, 3, 5};Zbiory implementujemy za pomocą pliku nagłówkowego #include <set> lub możemy dołączyć wszystkie pliki nagłówkowe, jak wspomniano w poprzednich lekcjach, za pomocą #include <bits/stdc++.h>
set<int> mySet = {5, 10, 3, 5};
for (int i = mySet.begin(); i != mySet.end(); i++)
cout << *i << " ";Output:
3 5 10Jak widać powyżej, zadeklarowaliśmy zbiór z początkowymi wartościami. Użyliśmy iteratora wskazującego na pierwszy element, przeszliśmy przez zbiór w pętli i wypisaliśmy wszystkie elementy. Widzimy, że sam zbiór usunął powtarzające się elementy, a także posortował je, zaczynając od najmniejszego.
Wstawiamy elementy do zbioru za pomocą metody insert().
mySet.insert(50);Wartości elementów nie mogą być też modyfikowane po dodaniu ich do zbioru — można je jedynie usunąć i dodać nowe elementy.
Metody zbioru
| Metoda | Działanie |
| begin() | Zwraca iterator wskazujący na pierwszy element zbioru |
| end() | Zwraca iterator wskazujący na ostatni element zbioru |
| size() | Zwraca liczbę elementów w zbiorze |
| empty() | Zwraca informację, czy zbiór jest pusty (1), czy nie (0) |
| count() | Zwraca 1, jeśli element znajduje się w zbiorze, a w przeciwnym razie 0 |
Wyzwanie
ŁatwyPodano 10 liczb na wejściu. Używając zbioru, wypisz tylko unikalne liczby.
Input
5
10
1
5
3
5
10
8
6
7Output
5
10
1
3
8
6
7Spróbuj swoich sił
#include <set>
#include <iostream>
using namespace std;
int main()
{
// Enter your code here
return 0;
}Wszystkie lekcje w sekcji C++ – Standardowa biblioteka szablonów
Poćwicz samodzielnie: Kompilator C++ online