还有其他方法可以在数组中写入多维数组吗?
are there other ways to write a multidimensional array in an array?
我需要向数组添加一个数组,我想找到最方便的方法。
我知道这里只有 2 个添加选项是示例。
int main() {
int arr[5][6][8]{0};
// option 1
int& F = arr[1][0][1];
F = 2;
int L = arr[2][0][F];
L = 5;
// option 2
arr[1][1][1] = 3;
int Z = arr[2][1][arr[1][1][1]];
Z = 7;
cout << " ARR L " << L << "n" << endl;
cout << " ARR Z " << Z << "n" << endl;
system("pause");
return 0;
}
我需要这样的模板来帮助我编写可读的代码。 这很难,我知道,但请试着理解。 我的模板应该将我从多维数组中拯救出来
想象一下,我会做一些像这样疯狂的事情。
arr[1][0][1] = 2; // in fact, the number is unknown, this is just an example. the program itself adds the numbers that are needed
int F& = arr[2][0][arr[1][0][1]] = 5;
arr[1][1][1] = 3;
int Z& = arr[arr[1][0][1]][arr[2][0][F]][arr[1][1][1]];
Z = 7;
让我们看看你的两个选项...
选项 1
// option 1
int& F = arr[1][0][1];
F = 2;
int& L = arr[2][0][F]; // added &
L = 5;
我把int L
改成了int& L
,否则就没有意义了。那么以上效果与
arr[1][0][1] = 2;
arr[2][0][2] = 5;
我认为这比您的选择更清楚1。没有不必要的变量和间接,只是简单的赋值。
选项 2(再次更改为使用引用(
// option 2
arr[1][1][1] = 3;
int& Z = arr[2][1][arr[1][1][1]];
Z = 7;
这与
arr[1][1][1] = 3;
arr[2][1][3] = 7;
同样,我认为没有理由让它比这更复杂。
PS:我知道这个答案很可能不是你想听到的,但我希望这将向您展示如何使其不会比必要的复杂,也许您将能够解释您还有哪些您尚未提到的其他要求。
相关文章:
- 初始化具有非默认构造函数的std::数组项的更好方法
- 复制几乎为空的数组的最快方法
- 通过JNI传递数据数组的最快方法是什么
- 在调用接收数组的方法时,模板化数组大小是不是一种糟糕的做法
- 数组元素打印的递归方法
- 在c++中为我自己的基于指针的数组分配内存的正确方法
- 在 c++ 中对类中的 c 字符串动态数组进行排序的最佳方法是什么?
- 有没有一种代码密度较低的方法来使用非默认构造函数初始化数组?
- C++数组队列实现方法错误
- 寻找一种更好的方法来表示无符号字符数组
- 在 C++ 中将整数数组转换为位集表示形式的最佳方法?
- 初始化数组、"memset"或" {//value} "的最佳方法是什么?
- 创建异构顶点数据数组的可移植方法
- 打印字符数组地址的正确方法
- 还有其他方法可以在数组中写入多维数组吗?
- 从数组中删除非唯一值、保持顺序和不使用向量的最佳方法?
- 指针数组方法的向量push_back编译但不运行
- 在函数内部使用数组方法
- 如何获取方法内部int数组(方法参数)的长度
- 如何在c++中访问向量类数组方法