if (!KeyIsExist(book, country)) {
                  
                  
                      cout << "Country " << country << " doesn't exist" << endl;
                  
                  
                    } else {
                  
                  
                      cout << "Country " << country << " has capital " << book[country];
                  
                  
                    }
                  
                  
                  } В чем ошибка? Ругается на book[country]
                  
                  
                
Конкретнее
Видимо это KeyIsExist
bool KeyIsExist(const map<string, string> & book, string key) { bool result = false; for (const auto & x : book) { if (x.first == key) { result = true; break; } } return result; }
Как объявлена эта функция?
Тогда значить от book []
То ест ты прав был. Надо . at
Под if() можете писать return true;, а вне цикла, соответственно, - return false;. Не нужна ни переменная, ни break;.
Ну да, для словаря с доступом по колючу за O(log n) искать перебором странно
Обсуждают сегодня