c++ - 还有其他方法可以在数组中写入多维数组吗?
问题描述
我需要向数组中添加一个数组,我想为我找到最方便的方法。
我知道这里只有 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:我知道这个答案很可能不是你想听到的,但我希望这会告诉你如何使它不比必要的复杂,也许你能解释你有哪些额外的要求你没有提一下。
推荐阅读
- python - 如何在 Flask 中流式传输大型视频
- react-native - 获取对服务器的请求时出现错误 403。服务器包含核心标头
- python - 如何返回 Chrome 中的所有元素?
- authentication - Heroku 在 Plotly Dash 网站上遵循 Basic Auth 示例时崩溃
- html - ASP.NET 页面中的活动导航栏
- flutter - 如何在 PaginatedDataTable Flutter Web 中实现搜索
- api - spring批处理API动态创建任务和步骤
- c# - Line Trace / Raycasting 如何在游戏引擎中工作以测试交叉点?
- javascript - 如何根据数据条件更改 React Native 样式颜色
- typescript - 此条件将始终返回 'false',因为类型 '"development" | “生产” | "test"' 和 '"local"' 没有重叠。ts(2367)