Код C++ VS в цикле forrange в OSX
Я застрял в цикле forrange в VS Code. Это дает мне ошибку:
ожидается ';'
ожидал выражения
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;
}
}