У меня действующий код в стиле 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 ответ
Я считаю, что этот вопрос больше подходит для переполнения стека, но я все равно на него отвечу. В 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 ...;)
![Обнуление 2D-массива в стиле C ++ [closed] TheFAQ.ru](https://thefaq.ru/wp-content/uploads/2023/01/logo-250.png)
Я бы предложил использовать
usingвместоtypedefпоскольку мы хотим использовать современные методы C ++.— Андреас Бруннет
Спасибо!!!!!!
— клятва
@AndreasBrunnet Да, вы совершенно правы. Отредактирую ответ.
— SomeProgrammer