#include #include #include //hash table (probably chaining?) #include //a binary search tree (balanced) using namespace std; //unordered_map demo: [], at, for, bucket_count, size, load_factor, max_load_factor, rehash void showStats(unordered_map & M) { cout << "max_load_factor: " << M.max_load_factor() << endl; cout << "size: " << M.size() << endl; // number of items n cout << "bucket_size: " << M.bucket_count() << endl; //table size H cout << "load_factor: " << M.load_factor() << endl; //load factor n/H } int main() { //hash table, holds (key,value) pairs. //key MUST be a hashable type. value: can be anything unordered_map M; showStats(M); cout << endl; pair p1; p1.first = "Jose"; p1.second = 3.8; pair p2; p2.first = "Elvia"; p2.second = 4.0; //w.c: O(n) (because it checks for duplicates), a.c: O(1) M.insert(p1); M.insert(p2); //Faster way? Use bracket notation M["Silvia"] = 4.0; M["Jesus"] = 1.44; M["Jesus2"] = 1.1; M["Kailey"] = 2.5; M["WhyLie"] = 1.3; M["Tomai"] = 3.7; M["Ramiro"] = 3.8; swap(M["Kailey"], M["Silvia"]); //w.c: O(n), a.c: O(1) cout << M["WhyLie"] << endl; showStats(M); for (auto x : M) { cout << x.first << " : " << x.second << endl; } return 0; }