矢量中的自动迭代器

Auto iterator in vector

本文关键字:迭代器      更新时间:2023-10-16

为什么 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;
}

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

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

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

for(auto& it : s) {
    std::cout << it << 'n';
}