Массив с фиксированным размером во время выполнения - PullRequest
0 голосов
/ 11 декабря 2018

Я знаю, что могу использовать std::array<Type, Size>, чтобы иметь массив типа Type и размера, который является фиксированным во время компиляции.

Кроме того, std::vector можно использовать, еслиразмер не фиксирован во время компиляции, но задан во время выполнения.

Существует ли контейнер std, который можно установить во время выполнения на определенный размер, и этот размер чем-то неизменным?Я намереваюсь получить ошибку компиляции, если размер был изменен после создания этого контейнера.

Конечно, это может быть заархивировано с массивами старой школы с использованием указателей.Тем не менее, это также имеет недостаток, заключающийся в необходимости передавать указатель и длину в функцию?

1 Ответ

0 голосов
/ 11 декабря 2018

Существует ли контейнер std, который может быть установлен во время выполнения до определенного размера, и этот размер не может быть изменен?

Нет, такого стандартного контейнера, обеспечивающего эту функцию, пока нет (пока).

Вы можете написать простой класс-обертку для std::vector, используя фиксированный размер, как предложено в ответах здесь:

...