当我使用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)
Visual Studio 2010不支持基于范围的for循环,但它支持auto
,所以你可以这样做:
for (auto i = data.begin(); i != data.end(); ++i)
{
...
}
但请注意,使用此方法时,您拥有一个迭代器,而不是基于范围的for循环所拥有的元素。所以你需要解引用它,即i->first
和i->second
。