当我使用g ++编译项目时,它正在运行,但是当涉及到visual studio时,它显示错误错误:无法推断' auto'类型(需要初始化程序)
代码:
void Student::eat() {
// Holds file data
map< string, tuple<int, int, int, int> > data;
for (const auto& entry : data)
{
}
}
我缩短了代码,所以我可以指出问题所在。我在进入时遇到了错误。
for (const auto& entry : data)
答案 0 :(得分:6)
Visual Studio 2010不支持基于范围的for循环,但它支持auto
,所以你可以这样做:
for (auto i = data.begin(); i != data.end(); ++i)
{
...
}
但请注意,有了这个,你就有了一个迭代器,而不是你对基于范围的for循环所拥有的元素。因此,您需要取消引用它,即i->first
和i->second
。