在新版本的c++中,使用auto作为循环的类型和范围基础非常方便
// instead of
for (vector<int>::iterator it = v.begin(); it != v.end(); it++) {
}
// to do
for (auto vi: v) {
}
如何将它用于
vector<vector<int>>
?当我尝试
for (const auto& vi: vvi) {
}
编译器抱怨:推定类型为'const auto'的变量'vi'的声明需要初始化程序。
更新:
事实证明一切正常,我只是做了一个愚蠢的错字,并在变量名后加上'&'而不是
for (const auto vi&: vvi)
类型;我使用&来避免在循环的每次迭代中创建新变量。 最佳答案
您可以将2用于范围:
for (const auto& inner: vvi) { // auto is std::vector<int>
for (auto e: inner) { // auto is int
std::cout << e << " ";
}
std::cout << std::endl;
}
关于c++ - 在 vector 的 vector 上自动键入的for循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61425187/