Я даже не знаю, что это значит. Я продолжаю получать эту ошибку «Нет жизнеспособного перегруженного оператора [] для типа« карта> ».

Ошибка, когда я пытаюсь распечатать карту "city_Connection".

void travel::get(){
    vector<string>main_cities;
    vector<string>neighbouring_cities;
    map<string, vector<string>>;
    int n;
    cin>>n;
    int m;
    for(int i=0; i<n; i++){
        string city; cin>>city;
        main_cities.push_back(city);
        cin>>m;
        for (int i=0; i<m; i++) {
            string ncity; cin>>ncity;
            neighbouring_cities.push_back(ncity);
        }
        city_Connenction[city]=neighbouring_cities;
        neighbouring_cities.clear();
    }
    cout<<endl;
    cin>>source;
    cin>>destn;
    cout<<endl;

    cout<<city_Connenction['A'];
}
0
Aniket Vishwakarma 5 Апр 2020 в 14:13
Без минимального воспроизводимого примера мы должны угадать типы и местоположение ошибки.
 – 
Richard Critten
5 Апр 2020 в 14:16

1 ответ

В c++ 'A' имеет тип char, а "A" имеет тип const char*. Последний конвертируется в std::string, а первый нет.

Используйте city_Connenction["A"].

0
super 5 Апр 2020 в 14:52
Да, это так. живой пример
 – 
super
5 Апр 2020 в 20:49