C++/Unordered set
W C++ unordered_set to implementacja zestawu, który używa tablicy skrótów do przechowywania swoich elementów, zapewniając szybszy czas dostępu niż standardowa implementacja zestawu. Oto przykład użycia unordered_set w standardowej bibliotece szablonów C++ (STL):
#include <iostream>
#include <unordered_set>
using namespace std;
int main() {
unordered_set<int> mySet; // create an empty unordered set
// insert elements
mySet.insert(3);
mySet.insert(5);
mySet.insert(1);
mySet.insert(7);
mySet.insert(9);
// check if an element exists in the set
if (mySet.find(5) != mySet.end()) {
cout << "5 is present in the set" << endl;
}
// erase an element
mySet.erase(7);
// print the elements
for (const auto& element : mySet) {
cout << element << " ";
}
cout << endl;
// clear the set
mySet.clear();
return 0;
}
W tym przykładzie najpierw tworzymy pusty nieuporządkowany zbiór liczb całkowitych o nazwie mySet. Następnie używamy metody insert, aby wstawić elementy do zestawu. Zauważ, że elementy nie są przechowywane w określonej kolejności, ponieważ jest to zbiór nieuporządkowany.
Następnie używamy metody find, aby sprawdzić, czy element jest obecny w zbiorze, oraz metody wymazywania, aby usunąć element ze zbioru. Następnie używamy pętli for opartej na zakresie, aby wydrukować elementy zestawu, oraz metody clear, aby usunąć wszystkie elementy z zestawu.
Należy zauważyć, że unordered_set ma podobną funkcjonalność do innych kontenerów C++ STL, takich jak zestaw, wektor i mapa, ale ma inną charakterystykę wydajności. Na przykład unordered_set zapewnia stałą średnią złożoność operacji wstawiania, usuwania i wyszukiwania, ale zużywa więcej pamięci niż implementacja zestawu.