Set
Tento príklad ukazuje použitie std::set v C++17 na ukladanie unikátnych hodnôt, vyhľadávanie, mazanie a prácu s
množinami.
#include <iostream>
#include <set>
using namespace std;
int main() {
// Deklarácia a inicializácia množiny celých čísel
set<int> mySet = {5, 2, 8, 3, 5, 10, 2};
// Výpis prvkov množiny (automaticky zoradené a bez duplikátov)
cout << "Obsah množiny: ";
for (int num : mySet) {
cout << num << " ";
}
cout << endl;
// Pridanie nového prvku
mySet.insert(7);
cout << "Po pridaní 7: ";
for (int num : mySet) {
cout << num << " ";
}
cout << endl;
// Kontrola existencie prvku
int value = 3;
if (mySet.find(value) != mySet.end()) {
cout << value << " sa nachádza v množine." << endl;
} else {
cout << value << " sa nenachádza v množine." << endl;
}
// Odstránenie prvku
mySet.erase(8);
cout << "Po odstránení 8: ";
for (int num : mySet) {
cout << num << " ";
}
cout << endl;
// Veľkosť množiny
cout << "Veľkosť množiny: " << mySet.size() << endl;
return 0;
}Vysvetlenie kódu:
Deklarácia a inicializácia
std::setset<int> mySet = {5, 2, 8, 3, 5, 10, 2};std::setuchováva unikátne hodnoty a automaticky ich triedi.- Duplicity sa ignorujú, takže
"5"a"2"sa pridajú iba raz.
Výpis prvkov množiny
for (int num : mySet) { cout << num << " "; }std::setsa vypisuje v triedenom poradí.
Pridanie prvku (
insert())mySet.insert(7);insert()pridá nový prvok.- Ak už existuje, nič sa nezmení.
Vyhľadanie prvku (
find())if (mySet.find(value) != mySet.end()) { ... }find(value)vráti iterátor na prvok aleboend(), ak sa nenachádza v množine.
Odstránenie prvku (
erase())mySet.erase(8);erase()odstráni prvok zo množiny.
Zistenie veľkosti (
size())cout << "Veľkosť množiny: " << mySet.size() << endl;size()vráti počet unikátnych prvkov.
Očakávaný výstup:
Obsah množiny: 2 3 5 8 10
Po pridaní 7: 2 3 5 7 8 10
3 sa nachádza v množine.
Po odstránení 8: 2 3 5 7 10
Veľkosť množiny: 5