Обнуление 2D-массива в стиле C ++ [closed]

У меня действующий код в стиле C.

int arr[10][10] = {0}; // all elements of array are 0

Каков оптимальный способ сделать то же самое для массива стилей C ++?

Моя идея

#include <array>

std::array<std::array<int, 10>, 10> arr = {0}; // is it correct?

1 ответ
1

Я считаю, что этот вопрос больше подходит для переполнения стека, но я все равно на него отвечу. В C ++ предпочтительный способ сделать это:

std::array<std::array<int, 10>, 10> arr = {}; // Without the 0

Также помните, что static переменные в любом случае инициализируются нулем, поэтому вам не нужно этого делать.

Поскольку это обзор кода, я бы предложил использовать typedef заменить std::array<std::array<int, 10>, 10> чтобы сделать ваш код более читабельным.

РЕДАКТИРОВАТЬ: Как указано в комментариях, using намного мощнее, чем typedef и более современный C ++, и лучше использовать его, а не typedef. Он поддерживает шаблоны псевдонимов типов и все другие интересные вещи, поэтому его предпочтительно использовать. (Хотя никогда не используйте using namespace ...;)

  • 1

    Я бы предложил использовать using вместо typedef поскольку мы хотим использовать современные методы C ++.

    — Андреас Бруннет


  • Спасибо!!!!!!

    — клятва

  • 1

    @AndreasBrunnet Да, вы совершенно правы. Отредактирую ответ.

    — SomeProgrammer

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *