首页 > 解决方案 > 用数组声明函数

问题描述

首先,我是一个 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 ??
}

标签: c++arraysfunction

解决方案


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

#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{};

将所有元素初始化为零。


推荐阅读