c++ - 二维向量 for-loop c++
问题描述
这是我的代码
#include <iostream>
#include <string>
#include <vector>
using std::cout;
using std::vector;
int main() {
vector<vector<int>> map{{0, 1, 0, 0, 0, 0},
{0, 1, 0, 0, 0, 0},
{0, 1, 0, 0, 0, 0},
{0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0}};
for (int j : map) {
for (int i :j) {
cout << i ;
}
cout << "\n";
}
}
上面的代码,int j 中有一个错误:map 但是当我将'int'更改为'auto'时,代码运行良好
我的问题是 2d 矢量(如地图)的正确类型是什么?为什么int不适用于二维向量?
解决方案
你必须像这样使用。因为首先 for 循环搜索在vector<vector<int>>
. 所以 j 类型必须是vector<int>
第一层。我的英语太糟糕了,很抱歉我试着解释一下。我希望这会有所帮助。
for (vector<int> &j : map) {
for (int i : j) {
cout << i ;
}
cout << "\n";
}
推荐阅读
- java - 在 Apache Spark 中读取多行 JSON 文件后,如何获取嵌套属性作为列?
- c# - 使用星号(循环、数组)的图表
- python - 获取所有年份特定月/日的所有索引位置
- regex - 正则表达式在锚名称中查找空格?
- c# - C#工厂异步套接字错误“主机断开连接”
- javascript - 在 WordPress 网站中使用 AJAX 传入 sessionStorage 数据
- macos - CoreGraphics:如果图像被缩放,绘制 NSImage 的性能会受到影响
- java - 在 Java 上的一个线程中等待多个事件
- r - R将两个列表合并为一个,从每个列表中交替绘制元素
- r - dplyr:评估名称在向量中的变量的总和