Код C++ VS в цикле forrange в OSX

Я застрял в цикле forrange в VS Code. Это дает мне ошибку:

ожидается ';'

ожидал выражения

Ошибка VS Code C++

         mp[0] = 10;
   mp[1] = 200;
   mp[2] = 3000;
   mp[3] = 40000;

   for (int id : mp) // error for ":" and ")"
   {
       std::cout << id << std::endl;
   }

2 ответа

Если mp является std::map<int,int> тогда твой for цикл имеет неправильный тип, это не просто int, скорее это пара ключ / значение для каждого элемента. Вы могли бы использовать

      for (auto const& item : mp)
{
    std::cout << item.first << ' ' << item.second << std::endl;
}

куда .first это ключ и .second это значение.

Спасибо за ответ, Кори, но проблема все еще существует:

явный тип отсутствует (предполагается 'int') [13,21]

ссылочная переменная "item" требует инициализатора [13,27]

ожидал выражения [13,31]

      {
    std::map<int, int> mp;
    mp[0] = 10;
    mp[1] = 200;
    mp[2] = 3000;
    mp[3] = 40000;

    for (auto const &item : mp) // error for "&" and ":" and ")"
    {
        std::cout << item.first << ' ' << item.second << std::endl;
    }
}
Другие вопросы по тегам