Skip to content

Instantly share code, notes, and snippets.

@yasukei
Created May 11, 2020 13:30
Show Gist options
  • Save yasukei/4636d73ff1bd87a9e3895bbd09e3878f to your computer and use it in GitHub Desktop.
Save yasukei/4636d73ff1bd87a9e3895bbd09e3878f to your computer and use it in GitHub Desktop.
std::unordered_set
#include <iostream>
#include <string>
#include <vector>
#include <unordered_set>
int main()
{
std::unordered_set<std::string> us;
auto print = [&]() {
std::cout << "us.empty(): " << us.empty() << "\n";
std::cout << "us.size(): " << us.size() << "\n";
std::cout << "us.max_size(): " << us.max_size() << "\n";
std::cout << "us.bucket_count(): " << us.bucket_count() << "\n";
std::cout << "us.max_bucket_count(): " << us.max_bucket_count() << "\n";
for (auto it = us.begin(); it != us.end(); ++it)
{
std::cout << "s[" << it->c_str() << "]\n";
}
for (int i = 0; i < us.bucket_count(); ++i)
{
std::cout << "us.bucket_size(" << i << "): " << us.bucket_size(i) << "\n";
}
std::cout << "us.load_factor(): " << us.load_factor() << "\n";
std::cout << "us.max_load_factor(): " << us.max_load_factor() << "\n";
};
std::cout << "\n[Initial state]\n";
print();
std::cout << "\n[After insert()]\n";
auto result = us.insert("Jan");
std::cout << "inserted: [" << result.second << "]\n";
result = us.insert("Jan");
std::cout << "inserted: [" << result.second << "]\n";
print();
std::cout << "\n[After push_back()]\n";
us.insert("Feb");
print();
std::cout << "\n[After clear()]\n";
us.clear();
print();
std::cout << "\n[After insert()]\n";
std::vector<std::string> month = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
for (int i = 0; i < month.size(); i++)
{
us.insert(month[i]);
}
print();
std::cout << "\n[After erase()]\n";
for (auto it = us.begin(); it != us.end(); )
{
if (it->front() == 'J')
{
it = us.erase(it);
}
else
{
++it;
}
}
print();
std::cout << "\n[find(\"Jul\")]\n";
auto search = us.find("Jul");
if (search == us.end())
{
std::cout << "Not found" << "\n";
}
else
{
std::cout << search->c_str() << " was found" << "\n";
}
return 0;
}
[Initial state]
us.empty(): 1
us.size(): 0
us.max_size(): 329406144173384850
us.bucket_count(): 8
us.max_bucket_count(): 1152921504606846975
us.bucket_size(0): 0
us.bucket_size(1): 0
us.bucket_size(2): 0
us.bucket_size(3): 0
us.bucket_size(4): 0
us.bucket_size(5): 0
us.bucket_size(6): 0
us.bucket_size(7): 0
us.load_factor(): 0
us.max_load_factor(): 1
[After insert()]
inserted: [1]
inserted: [0]
us.empty(): 0
us.size(): 1
us.max_size(): 329406144173384850
us.bucket_count(): 8
us.max_bucket_count(): 1152921504606846975
s[Jan]
us.bucket_size(0): 0
us.bucket_size(1): 0
us.bucket_size(2): 0
us.bucket_size(3): 0
us.bucket_size(4): 0
us.bucket_size(5): 0
us.bucket_size(6): 1
us.bucket_size(7): 0
us.load_factor(): 0.125
us.max_load_factor(): 1
[After push_back()]
us.empty(): 0
us.size(): 2
us.max_size(): 329406144173384850
us.bucket_count(): 8
us.max_bucket_count(): 1152921504606846975
s[Jan]
s[Feb]
us.bucket_size(0): 0
us.bucket_size(1): 0
us.bucket_size(2): 1
us.bucket_size(3): 0
us.bucket_size(4): 0
us.bucket_size(5): 0
us.bucket_size(6): 1
us.bucket_size(7): 0
us.load_factor(): 0.25
us.max_load_factor(): 1
[After clear()]
us.empty(): 1
us.size(): 0
us.max_size(): 329406144173384850
us.bucket_count(): 8
us.max_bucket_count(): 1152921504606846975
us.bucket_size(0): 0
us.bucket_size(1): 0
us.bucket_size(2): 0
us.bucket_size(3): 0
us.bucket_size(4): 0
us.bucket_size(5): 0
us.bucket_size(6): 0
us.bucket_size(7): 0
us.load_factor(): 0
us.max_load_factor(): 1
[After insert()]
us.empty(): 0
us.size(): 12
us.max_size(): 329406144173384850
us.bucket_count(): 64
us.max_bucket_count(): 1152921504606846975
s[May]
s[Jan]
s[Jun]
s[Apr]
s[Feb]
s[Mar]
s[Aug]
s[Jul]
s[Sep]
s[Oct]
s[Nov]
s[Dec]
us.bucket_size(0): 0
us.bucket_size(1): 0
us.bucket_size(2): 1
us.bucket_size(3): 0
us.bucket_size(4): 1
us.bucket_size(5): 0
us.bucket_size(6): 0
us.bucket_size(7): 0
us.bucket_size(8): 0
us.bucket_size(9): 1
us.bucket_size(10): 0
us.bucket_size(11): 1
us.bucket_size(12): 0
us.bucket_size(13): 0
us.bucket_size(14): 0
us.bucket_size(15): 1
us.bucket_size(16): 0
us.bucket_size(17): 0
us.bucket_size(18): 1
us.bucket_size(19): 1
us.bucket_size(20): 1
us.bucket_size(21): 0
us.bucket_size(22): 0
us.bucket_size(23): 0
us.bucket_size(24): 0
us.bucket_size(25): 0
us.bucket_size(26): 0
us.bucket_size(27): 0
us.bucket_size(28): 0
us.bucket_size(29): 0
us.bucket_size(30): 0
us.bucket_size(31): 0
us.bucket_size(32): 0
us.bucket_size(33): 0
us.bucket_size(34): 1
us.bucket_size(35): 0
us.bucket_size(36): 0
us.bucket_size(37): 0
us.bucket_size(38): 1
us.bucket_size(39): 0
us.bucket_size(40): 0
us.bucket_size(41): 0
us.bucket_size(42): 0
us.bucket_size(43): 0
us.bucket_size(44): 0
us.bucket_size(45): 0
us.bucket_size(46): 1
us.bucket_size(47): 0
us.bucket_size(48): 0
us.bucket_size(49): 0
us.bucket_size(50): 0
us.bucket_size(51): 0
us.bucket_size(52): 0
us.bucket_size(53): 0
us.bucket_size(54): 0
us.bucket_size(55): 0
us.bucket_size(56): 0
us.bucket_size(57): 0
us.bucket_size(58): 0
us.bucket_size(59): 0
us.bucket_size(60): 1
us.bucket_size(61): 0
us.bucket_size(62): 0
us.bucket_size(63): 0
us.load_factor(): 0.1875
us.max_load_factor(): 1
[After erase()]
us.empty(): 0
us.size(): 9
us.max_size(): 329406144173384850
us.bucket_count(): 64
us.max_bucket_count(): 1152921504606846975
s[May]
s[Apr]
s[Feb]
s[Mar]
s[Aug]
s[Sep]
s[Oct]
s[Nov]
s[Dec]
us.bucket_size(0): 0
us.bucket_size(1): 0
us.bucket_size(2): 1
us.bucket_size(3): 0
us.bucket_size(4): 1
us.bucket_size(5): 0
us.bucket_size(6): 0
us.bucket_size(7): 0
us.bucket_size(8): 0
us.bucket_size(9): 1
us.bucket_size(10): 0
us.bucket_size(11): 1
us.bucket_size(12): 0
us.bucket_size(13): 0
us.bucket_size(14): 0
us.bucket_size(15): 1
us.bucket_size(16): 0
us.bucket_size(17): 0
us.bucket_size(18): 1
us.bucket_size(19): 1
us.bucket_size(20): 1
us.bucket_size(21): 0
us.bucket_size(22): 0
us.bucket_size(23): 0
us.bucket_size(24): 0
us.bucket_size(25): 0
us.bucket_size(26): 0
us.bucket_size(27): 0
us.bucket_size(28): 0
us.bucket_size(29): 0
us.bucket_size(30): 0
us.bucket_size(31): 0
us.bucket_size(32): 0
us.bucket_size(33): 0
us.bucket_size(34): 0
us.bucket_size(35): 0
us.bucket_size(36): 0
us.bucket_size(37): 0
us.bucket_size(38): 1
us.bucket_size(39): 0
us.bucket_size(40): 0
us.bucket_size(41): 0
us.bucket_size(42): 0
us.bucket_size(43): 0
us.bucket_size(44): 0
us.bucket_size(45): 0
us.bucket_size(46): 0
us.bucket_size(47): 0
us.bucket_size(48): 0
us.bucket_size(49): 0
us.bucket_size(50): 0
us.bucket_size(51): 0
us.bucket_size(52): 0
us.bucket_size(53): 0
us.bucket_size(54): 0
us.bucket_size(55): 0
us.bucket_size(56): 0
us.bucket_size(57): 0
us.bucket_size(58): 0
us.bucket_size(59): 0
us.bucket_size(60): 0
us.bucket_size(61): 0
us.bucket_size(62): 0
us.bucket_size(63): 0
us.load_factor(): 0.140625
us.max_load_factor(): 1
[find("Jul")]
Not found
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment