Как инициализировать все элементы двумерного массива для определенного значения? - PullRequest
6 голосов
/ 30 апреля 2020

Существует ли какая-либо функция, аналогичная memset(), для инициализации всех элементов двумерного массива определенным значением? memset можно использовать только для инициализации значений 0 и -1.

Ответы [ 2 ]

3 голосов
/ 30 апреля 2020

Вы можете использовать std::fill:

for(auto &arr : two_dim)
    std::fill(std::begin(arr), std::end(arr), value);

Это будет работать для многих массивов и контейнеров, таких как std::vector, std::array и C.

Также обратите внимание, что вы можете использовать memset для инициализации всех элементов массива значениями, отличными от -1 и 0. Просто все байты в каждом элементе будут иметь одинаковое значение, например 0x12121212.

0 голосов
/ 30 апреля 2020

Вот функция fill () для инициализации 2D-массива с определенным значением

#include <iostream>
#include <algorithm>

int a[row][column], value;
std::fill(a[0], a[0] + row * column, value);
...