Я хотел бы использовать std::array
из C++ 11 как поле своего класса. Он принимает два параметра шаблона (сначала определяет тип данных, второй определяет размер массива).C++ 11 std :: array
Но я знаю второй параметр только в конструкторе. Я не знаком со стандартом C++ 11, но я полагаю, что невозможно установить параметр шаблона во время выполнения.
Есть ли альтернативы для std::array
? std::vector
, вероятно, слишком много, потому что я никогда не изменю его размер.
Я бы сказал, используя std :: vector над unique_ptr, первый совместим со всеми стандартными библиотечными функциями, которые работают на итераторах. Фактически вся точка std :: array должна обеспечивать такой интерфейс над обычным массивом. –
@ user1131467: Действительно, 'std :: vector' намного удобнее; но ОП действительно выразил озабоченность по поводу эффективности, поэтому, возможно, сохранение нескольких байтов важно. –
Если вы собираетесь писать обертку в стиле STL, то по крайней мере она также должна знать ее размер. Вы можете только не беспокоиться о емкости. – UncleBens