3.5
Copied!
#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
Copied!