объявление функции с массивами - PullRequest
0 голосов
/ 13 октября 2018

Прежде всего, я нуб с ++!Хорошо с этим, как говорится, мне нужно объявить функцию, которая инициализирует сетку.Функция принимает массив 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 голосов
/ 13 октября 2018

Вам не нужно ничего возвращать, если вы передаете массив по ссылке:

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

кстати, если ваш WATER равен 0, достаточно написать

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

для инициализации всех элементов в ноль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...