首页 > 解决方案 > 将在c ++中输出多维数组内容的for循环的结构是什么

问题描述

我需要看一个如何输出多维数组的示例。

string** row = new string*[level];
for(int i = 0; i < level; ++i) {
      row[i] = new string[level];
}

// outputting:

int x; // filled with some value

int y; // filled with some value

那时我row[y][x]将如何打印?yx

标签: c++

解决方案


首先,您可能应该考虑使用 std::vector 而不是手动动态分配,因为您使用的是 C++:

std::vector<std::vector<std::string>> rows(level);

代替

string** row = new string*[level];

并以这种方式初始化它:

for (std::vector<std::string>& row_vec : rows)
{
    row_vec.resize(level);
}

并对其进行迭代只需使用嵌套的 for 循环:

for (uint32_t x(0); x < level; ++x)
{
    for (uint32_t y(0); y < level; ++y)
    {
        std::cout << "rows[" << x << "][" << y << "] = " << rows[x][y] << std::endl;
    }
}

推荐阅读