Ввести число N — кількість елементів у словнику. Ввести пари країна та річка, що протікає у цій країні. Потім введіть назви декількох річок (множина). Будемо вважати, що в країні протікає одна річка але одна річка може протікає в декількох країнах. Для кожної річки вкажіть, у яких країнах вона протікає.
Код програми:
#include <iostream>
#include <map>
#include <string>
#include <sstream>
#include <set>
using namespace std;
int main() {
// Створення словника: країна → річка
map<string, string> country_to_river;
// Введення кількості пар
int n;
cout << "Введіть кількість пар країна-річка: ";
cin >> n;
cin.ignore(1, '\n'); // Очищення буфера після вводу числа
// Введення пар країна-річка
for (int i = 1; i <= n; i++) {
cout << "Введіть пару #" << i << " (країна річка): ";
string s;
getline(cin, s);
stringstream ss(s);
string country, river;
ss >> country >> river;
country_to_river[country] = river;
}
// Введення річок для пошуку
set<string> rivers_to_find;
int k;
cout << "\nВведіть кількість річок для пошуку: ";
cin >> k;
cin.ignore(1, '\n');
for (int i = 1; i <= k; i++) {
cout << "Введіть річку #" << i << ": ";
string river;
getline(cin, river);
rivers_to_find.insert(river);
}
// Пошук країн для кожної річки
cout << "\nРезультати пошуку:\n";
for (const string& river : rivers_to_find) {
string result = river;
bool found = false;
// Шукаємо країни, де протікає ця річка
for (const auto& pair : country_to_river) {
if (pair.second == river) {
result += " " + pair.first;
found = true;
}
}
if (!found) {
result += " не знайдено в жодній країні";
}
cout << result << endl;
}
return 0;
}
country_to_riverrivers_to_find
Введіть кількість пар країна-річка: 4
Введіть пару #1 (країна річка): Україна Дніпро
Введіть пару #2 (країна річка): Білорусь Дніпро
Введіть пару #3 (країна річка): Польща Вісла
Введіть пару #4 (країна річка): Німеччина Дунай
Введіть кількість річок для пошуку: 3
Введіть річку #1: Дніпро
Введіть річку #2: Вісла
Введіть річку #3: Рейн
Результати пошуку:
Дніпро Україна Білорусь
Вісла Польща
Рейн не знайдено в жодній країні
Дані про домени користувачів зберігаються в масиві структур:
|
Кожний користувач використовує лише один домен. Необхідно організувати зберігання даних у map, щоб для кожного користувача вказувався домен, який він використовує
Код програми:
#include <iostream>
using namespace std;
#include <map >
#include <string>
struct person
{
string domen; // ДОМЕН
string user1, user2, user3; // прізвища користувачів
};
int main()
{
int n = 5;
// МАСИВ ПО ДОМЕНАХ
struct person em[n] =
{
{"ukr.edu", "serox", "belova", "alexandrox"},
{"gmail.com", "semyonova", "ivanov", "abrabova"},
{"od.edu", "zharkov", "lyubimova", "smirnoff"},
{"harvard.edu", "doe", "zuckerberg", "hunt"},
{"it.edu", "shifman", "ray", "beloff"}
};
// СЛОВНИК ПО КОРИСТУВАЧАМ
map <string, string> m;
for (int i = 0; i < n; i++)
{
m[em[i].user1] = em[i].domen;
m[em[i].user2] = em[i].domen;
m[em[i].user3] = em[i].domen;
}
for (auto pair : m)
{
cout << pair.first << " : " <<pair.second << endl;
}
return 0;
}
Результат:
abrabova : gmail.com
alexandrox : ukr.edu
beloff : it.edu
belova : ukr.edu
doe : harvard.edu
hunt : harvard.edu