#include #include #include #include #include #include #include #include #include using namespace std; struct mydata { string name; double salary; }; // pair x; x.first, x.second // tuple x; get<0>(x), get<1>(x) int main() { // map persons; // Требуется операция < для ключей. unordered_map persons; for (;;) { string id; string name; double salary; cin >> id >> name >> salary; if (id == "@") { break; } persons[id] = {name, salary}; } //auto prnt = [](vector const &v) { // for (auto const &p: v) { // cout << p.name << " " << p.salary << "\n"; // } //}; auto prnt = [&persons]() { for (auto const &p: persons) { cout << "key=" << p.first << " " << p.second.name << " " << p.second.salary << "\n"; } cout << "--------\n"; }; prnt(); for (;;) { string request; cout << "Enter key: "; cin >> request; if (request == "@") break; auto result = persons.find(request); if (result == persons.end()) { cout << "Not found\n"; continue; } // map::iterator cout << "result: name='" << result->second.name << "' salary='" << result->second.salary << "'\n"; } prnt(); // map m; m[key]++; === m[key] = m[key]+1; }