Menu
Coddy logo textTech

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 10

Jak 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

MetodaDział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
challenge icon

Wyzwanie

Łatwy

Podano 10 liczb na wejściu. Używając zbioru, wypisz tylko unikalne liczby.

 

Input
5
10
1
5
3
5
10
8
6
7
Output
5
10
1
3
8
6
7

Spró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