У меня действующий код в стиле 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 ...;
)
Я бы предложил использовать
using
вместоtypedef
поскольку мы хотим использовать современные методы C ++.— Андреас Бруннет
Спасибо!!!!!!
— клятва
@AndreasBrunnet Да, вы совершенно правы. Отредактирую ответ.
— SomeProgrammer