3.6

#include <iostream>
#include <iomanip>
#include <unordered_set>
#include <random>
#include <ctime>
#include <chrono>
using namespace std;
 
int main() {
    default_random_engine rnd(time(0));
    uniform_int_distribution<unsigned> g(100, 999);
    unordered_multiset<int> unm;
    size_t n = 60;
    unm.reserve(n);
    while (n--) unm.emplace(g(rnd));
    cout << "Konteynerdagi segmentlar soni: "
         << unm.bucket_count()
         << "\n"
         << "Maksimal toʻldirishlar ko'ffitsenti: "
         << unm.max_load_factor()
         << endl;
    auto start = chrono::system_clock::now();
    auto res = unm.find(200);
    auto end = chrono::system_clock::now();
    auto elapsed = end - start;
    cout << "Natija => "
         << elapsed.count()
         << endl;
    // Oʻzimiz tomondam Maksimal toʻldirishlar ko'ffitsenti oʻrnatamiz
    unm.max_load_factor(0.7);
    unm.rehash(200);
    cout << "Konteynerdagi segmentlar soni: "
         << unm.bucket_count()
         << "\n"
         << "Maksimal toʻldirishlar ko'ffitsenti: "
         << unm.max_load_factor()
         << endl;
    start = chrono::system_clock::now();
    res = unm.find(200);
    end = chrono::system_clock::now();
    elapsed = end - start;
    cout << "Natija => "
         << elapsed.count()
         << endl;
    cout << " Hash tuzilmasi " << endl;
    for (size_t i = 0; i < unm.bucket_count(); i  ) {
        cout << "Segment N:" << setw(3) << i << " => ";
        // Iteratorga lokal segmentlarni olish
        auto first = unm.cbegin(i);
        auto last = unm.cend(i);
        while (first != last) {
            cout << *first   << " ";
        }
        cout << endl;
    }
	system("pause");
    return 0;
}
Run on cpp.sh