c++ - 如何调用存储在数组中的数组的值
问题描述
所以我试图将数组存储在另一个数组中,我很难尝试将所有值打印出来。
不确定这在 c++ 中是否可行,但在 python 中是可行的并且已经尝试过了。
#define ROW 7
int one[ROW], two[ROW], three[ROW], four[ROW], five[ROW], six[ROW], seven[ROW];
int grid[7];
void initialize() {
for (int i = 0; i < ROW; i++) {
one[i] = 0;
two[i] = 0;
three[i] = 0;
four[i] = 0;
five[i] = 0;
six[i] = 0;
seven[i] = 0;
}
grid[0] = *one;
grid[1] = *two;
grid[2] = *three;
grid[3] = *four;
grid[4] = *five;
grid[5] = *six;
grid[6] = *seven;
}
void print() {
for (int i = 0; i < 7; i++) {
int bro = grid[i];
cout << grid[i] << endl;
for (int elem : grid[i]) {
cout << elem << endl;
}
}
}
我有这个错误:
error: ‘begin’ was not declared in this scope
for (int elem : grid[i]) {
error: ‘end’ was not declared in this scope
for (int elem : grid[i]) {
解决方案
这个:
int grid[7];
严格声明一维数组。
这个:
grid[0] = *one;
它不会将数组分配给第一个元素。用 C 风格的数组,*arr
等价于arr[0]
. 因此,您将内部的第一个数字分配one
给grid[0]
.
类型在 C++ 中不能更改。如果这是你想要的,你必须声明一个二维数组:
int grid[7][7];
如果你想复制数组,原始数组将无法完成这项工作。使用std::array
将修复副本:
constexpr int row = 7;
std::array<std::array<int, row>, row> grid;
std::array<int, row> one;
// ...
grid[0] = one; // copy one into a row of grid correctly
顺便说一下,全局变量默认初始化为零。
推荐阅读
- python - 使用 Numpy 构建列表数字的子范围
- json - json模式根据另一个属性的值验证一个属性的值
- azure - 使用 Azure (Blazor) 托管的静态 Web 应用
- java - SpringBoot App抛出ava.sql.SQLIntegrityConstraintViolationException:无法删除或更新父行:外键约束失败
- docusignapi - 如何使用 sdk 向 docusign 电子邮件添加附件?
- javascript - 用循环构建乘法表
- mongodb - 当查询字段为objectId时,geoNear聚合是否不起作用?
- swift - 当 TextView 的 isScrollEnabled 设置为 false 时自动布局的意外行为
- vue.js - @nuxtjs/apollo 模块请求时间很慢(5 秒)
- python - np.vectorize 只有大小为 1 的数组可以转换为标量