我在 VS Code 中遇到了forrange循环。它给了我错误:
期望一个';'
期待一个表达式
mp[0] = 10;
mp[1] = 200;
mp[2] = 3000;
mp[3] = 40000;
for (int id : mp) // error for ":" and ")"
{
std::cout << id << std::endl;
}
我在 VS Code 中遇到了forrange循环。它给了我错误:
期望一个';'
期待一个表达式
mp[0] = 10;
mp[1] = 200;
mp[2] = 3000;
mp[3] = 40000;
for (int id : mp) // error for ":" and ")"
{
std::cout << id << std::endl;
}
如果mp
是std::map<int,int>
那么你的for
循环有错误的类型,它不仅仅是一个int
,而是每个元素的键/值对。你可以使用
for (auto const& item : mp)
{
std::cout << item.first << ' ' << item.second << std::endl;
}
哪里.first
是关键,哪里是.second
价值。
谢谢你的回答,Cory,但问题仍然存在:
缺少显式类型(假定为“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;
}
}