Advertisement
kirill1920

bus_stop

Aug 1st, 2020
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.47 KB | None | 0 0
  1. #include<iostream>
  2. #include<map>
  3. #include<vector>
  4. using namespace std;
  5. void new_bus(map<string, vector<string>>& stops) {//создание нового маршрута
  6.     string bus;//строка с номером маршрута
  7.     cin >> bus;
  8.     vector<string> stops_vec;//вектор остановок пустой
  9.     size_t nums;//количество остановок в маршруте
  10.     cin >> nums;
  11.     for (size_t i = 0; i < nums; ++i) {
  12.         string stop;//строка с остановкой
  13.         cin >> stop;
  14.         stops_vec.push_back(stop);//добавляем остановку в конец вектора
  15.     }
  16.     stops[bus] = stops_vec;//присваиваем значение вектора ячейке с номером маршрута
  17. }
  18. void buses_for_stop(const map<string, vector<string>>& stops) {
  19.     string stop;//строка с названием остановки
  20.     cin >> stop;
  21.     vector<string> result;
  22.     for (const auto& s : stops) {//итерируемся по всему контейнеру map
  23.         for (const auto& e : s.second) {//итерируемся по вектору остановок для каждого вектора в контейнере
  24.             if (e == stop) {
  25.                 result.push_back(s.first);//выводим номер маршрута
  26.             }
  27.         }
  28.     }
  29.     if (result.size() == 0) {
  30.         cout << "No stop\n";
  31.     }
  32.     else {
  33.         for (const auto& s : result) {
  34.             cout << s << ' ';
  35.         }
  36.         cout << endl;
  37.     }
  38. }
  39. void stops_for_bus(map<string, vector<string>> stops) {
  40.     string bus;//строка с остановкой
  41.     cin >> bus;
  42.     auto temp = stops;
  43.     map<string, vector<string>> res;
  44.     for (const auto& s : temp) {
  45.         for (const auto& t : s.second) {
  46.             if (t == bus) {
  47.  
  48.             }
  49.         }
  50.     }
  51. }
  52. void all_buses(const map<string, vector<string>>& stops) {//вывод всех автобусов
  53.     if (stops.size() == 0) {
  54.         cout << "No buses\n";
  55.     }
  56.     else {
  57.         for (auto& s : stops) {
  58.             cout << "Bus " << s.first << ": ";
  59.             for (auto& t : s.second) {
  60.                 cout << t << ' ';
  61.             }
  62.             cout << '\n';
  63.         }
  64.     }
  65.  
  66. }
  67. int main() {
  68.     map<string, vector<string>> stops;//контейнер с автобусами
  69.     size_t nums;
  70.     cin >> nums;
  71.     for (size_t i = 0; i < nums; ++i) {
  72.         string select;
  73.         cin >> select;
  74.         if (select == "NEW_BUS") {
  75.             new_bus(stops);
  76.         }
  77.         else if (select == "BUSES_FOR_STOP") {
  78.             buses_for_stop(stops);
  79.         }
  80.         else if (select == "STOPS_FOR_BUS") {
  81.             stops_for_bus(stops);
  82.         }
  83.         else if (select == "ALL_BUSES") {
  84.             all_buses(stops);
  85.         }
  86.     }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement