0

为什么 auto 关键字不起作用...????

s.push_back(11);
s.push_back(22);
s.push_back(33);
s.push_back(55);

for (auto it = s.begin(); it != s.end(); it++){
    cout << (*it) << endl;
}
4

3 回答 3

3

它应该工作。为此,您需要 C++11 支持。在 GCC 上,您需要 4.4 或更高版本,并确保使用std=c++0x标志(或可能std=c++11用于最新版本)。

于 2012-10-16T19:06:59.420 回答
1

看看你的编译器是否支持 auto 关键字,因为它是在 C++11 标准中正式引入的。

于 2012-10-16T19:07:25.677 回答
1

您需要 Visual Studio 2010(或更高版本)或 GCC 标志-std=c++11来编译它。您还可以在 VC++11 或 GCC 4.6 及更高版本中将其重写为 for-range 循环。

for(auto& it : s) {
    std::cout << it << '\n';
}
于 2012-10-16T19:08:23.173 回答