Как установить размер массива с помощью переменной-члена const?

cplusplus.com:

Векторные контейнеры реализованы как динамические массивы; Как и обычные массивы, векторные контейнеры имеют свои элементы, хранящиеся в смежных местах хранения, что означает, что к их элементам можно получить доступ не только с помощью итераторов, но и с использованием смещений на регулярных указателях на элементы.

2
задан Dayamre 21 January 2019 в 00:09
поделиться

1 ответ

Ну, SIZE, вероятно, не макрос, потому что здесь вы инициализируете его с 10 и имеете его как переменную. Если бы это был макрос, ваше выражение int a[SIZE] сработало бы, но вам все равно не понадобились бы строки 2-4.

Если SIZE является, как здесь, нормальной переменной (которая включает в себя динамическое создание A с параметром размера, , хотя входные данные могут быть из макроса), вы должны использовать вектор.

#include <vector>

class A {
  const int SIZE;

  A() : SIZE(10) {}
  void aaa() { std::vector<int> a(SIZE); }
};

Использование a теперь то же самое.

0
ответ дан IceFire 21 January 2019 в 00:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: