声明带有数组的函数

时间:2018-10-13 17:56:02

标签: c++ arrays function

首先,我是C ++新手!好的,我需要声明一个初始化网格的函数。该函数将一个int数组作为输入,并需要返回一个int数组。我有:

array<int> InitializeGrid (array<int>)
{
    const int NB_ROWS = 10;
    const int NB_COLUMN = 10;
    const int WATER = 0;

    int grid[NB_ROWS][NB_COLONN];


    for (int i = 0; i < NB_ROWS; i++)
    {
        for (int j = 0; j < NB_COLONN; j++)
        {
            grid[i][j] = WATER;
            cout << grid[i][j] << " ";
        }
        cout << endl;
    }
    return ??
}

1 个答案:

答案 0 :(得分:1)

如果通过引用传递数组,则无需返回任何内容:

#include <array>
#include <iostream>

static const int NB_ROWS = 10;
static const int NB_COLUMN = 10;
static const int WATER = 0;

void InitializeGrid (std::array<std::array<int, NB_COLUMN>, NB_ROWS> &grid)
{
    for (auto &row : grid)
    {
        for (auto &col : row)
        {
            col = WATER;
            std::cout << col << " ";
        }
        std::cout << '\n';
    }
}

int main()
{
    std::array<std::array<int, NB_COLUMN>, NB_ROWS> grid;
    InitializeGrid(grid);
}

顺便说一句,如果您的WATER0,写就足够了

std::array<std::array<int, NB_COLUMN>, NB_ROWS> grid{};

将所有元素初始化为零。