c++ - 在向量的向量上具有自动类型的 for 循环
问题描述
在新版本的 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;
}
推荐阅读
- reactjs - 在 React 中,我如何编码拆分公共页面(例如登录)以将它们与安全页面分开?
- php - 慢 PHP 例程
- python - 为什么我的网络抓取代码没有像应有的那样提取数据?
- ansible - 如何在 Ansible 中读取多行参数
- function - 使用观察函数调用在选择框中显示子类别列表的函数仅在第一次工作
- javascript - 在 d3 上使用 fs.createReadStream 构建折线图
- reactjs - Redux mapDispacthToProps - 从卸载事件调用时未调用道具
- google-apps-script - Google Apps 脚本 - 为什么 .getNextDataCell() 会跳过数据
- clean-css - clean-css-cli 使用 clean-css-cli 格式化媒体打印代码
- android - Android:在 SupportMapFragment 顶部未正确显示小吃栏