unordered_set
Hash-based unique elements.
What Is unordered_set?
std::unordered_set stores unique elements in a hash table. Membership tests are constant time on average, but there is no sorted order.
#include <iostream>
#include <unordered_set>
int main() {
std::unordered_set<int> s{1, 2, 3, 2, 1};
std::cout << s.size() << " unique values\n";
return 0;
}set vs unordered_set
Like maps:
set: sorted, O(log n).unordered_set: unordered, O(1) average.
Pick unordered_set for the fastest membership checks.
#include <iostream>
#include <unordered_set>
int main() {
std::unordered_set<std::string> seen{"a", "b", "c"};
std::cout << (seen.count("b") ? "yes" : "no") << '\n';
return 0;
}