C++数组、二维数组、初始化、std::array取指定二维数组的值

c++定义数组,要求使用传统方式 和 std::array 方式定义数组二维数组、并初始化值,
然后分别列出遍历的方法,主要是使用 std::array定义二维数组且能取指定位置的值。
要考虑内存消耗和效率问题?

"该回答引用ChatGPT"
还请参考,如果觉得不错,还请 点击 采纳,感谢!
定义数组的方式:

1、传统方式:

int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};


2、std::array 方式:

#include <array>
std::array<std::array<int, 3>, 2> arr = {{{1, 2, 3}, {4, 5, 6}}};


遍历方法:

1、传统方式:

for (int i = 0; i < 2; i++) {
  for (int j = 0; j < 3; j++) {
    printf("%d ", arr[i][j]);
  }
  printf("\n");
}

2、std::array 方式:

#include <iostream>
for (const auto &row : arr) {
  for (const auto &col : row) {
    std::cout << col << " ";
  }
  std::cout << std::endl;
}


取指定位置的值:

int value = arr[1][2];


内存消耗与效率:

1、使用传统方式定义数组,内存分配效率高,但如果数组大小不固定,不能通过编译;
2、使用 std::array 方式定义数组,内存分配效率低,但如果数组大小固定,可以更好地保证代码安全,支持遍历和取指定位置的值。
所以,使用哪种方式取决于你的具体需求。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇博客: C/C++ 数组的定义与初始化中的 二、标准库array类 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    • 跟普通数组一样高效,但更安全

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^