3.5

#include "stdafx.h"

#include <iostream>
#include <random>
#include <ctime>
#include <string>
#include <map>
#include <vector>

using namespace std;
 
int main() {
    map<string, int> rat;
    vector<string> lit;
	lit.push_back("a1"); lit.push_back("a2"); lit.push_back("a3");  
	lit.push_back("b1"); lit.push_back("b2"); lit.push_back("b3");
	lit.push_back("c1"); lit.push_back("c2"); lit.push_back("c3");  
    default_random_engine rnd(time(0));
    uniform_int_distribution<int> d(-10, 20);
    uniform_int_distribution<int> c(0, 8);
    //=============================1===================//
    // lugʻatni toʻldirish: tasofidiy kalit tasodifiy olinadi     //
    //=================================================//
    int n;
    cout << "Lugʻat elementlari sonini kirit: ";
    cin >> n;
    while (n--) {
        string S = lit[c(rnd)];
        int D = d(rnd);
        pair<string, int> tpr = make_pair(S, D);
        rat.insert(tpr);
        // emplace uchun juftlik yaratish shartmas:
        //rat.emplace(S, D);
    }
    //=============================2===================//
    // 2 ta har xil amal bilan kalit va qiymat qoshish            //
    //=================================================//
    rat.emplace("d1", 10);
	rat.insert(pair<const string, int>("d3", -15));
    rat.insert(pair<const string, int>("d3", 6));
    //=============================3===================//
    // birinchi va ikkinchi kalit orasidagi elementlarni chiqarish//
    //=================================================//
    string el_l, el_r;
    cout << "kalitlarni kirit:\n";
    cout << "1-kalit: "; cin >> el_l;
    cout << "2-kalit: "; cin >> el_r;
    auto fst = rat.lower_bound(el_l);
    auto lst = rat.upper_bound(el_r);
    while (fst != lst) {
        cout << fst -> first
             << " => "
             << fst -> second
             << endl;
        fst  ;
    }
    //==============================4==================//
    // kalitga mos eng katta elementni aniqlash                    //
    //=================================================//
    string tmp;
    cout << "Kalit kirit: ";
    cin >> tmp;
    auto first = rat.equal_range(tmp).first;
    auto last = rat.equal_range(tmp).second;
    if (first == last)
        cout << 0 << endl;
    else
        while (first != last) {
            auto r = first -> second;
            if (r >= 10)
                cout << r << " ";
            first  ;
        }
		system("pause");
    return 0;
}
	
Run on cpp.sh