Как объявить и установить переменную-член для класса шаблона AClass, который имеет тип std::array<T, ?>
(с неопределенным размером)? Фактический std::array
должен быть создан в конструкторе, где размер массива является параметром конструктора.
В коде псевдо-С++:
template <typename T> class AClass {
protected:
std::array<T, ?>* array;
public:
AClass(int n) {
this->array = new std::array<T, n>;
}
}
Как будет выглядеть правильный код?
std::unique_ptr<T[]> array
, если изменение размера и другиеvector
возможности не требуются. 18.12.2012vector
. Как я уже сказал, если изменение размера не требуется, возможно, стоит подумать, в противном случае используйтеvector
. 18.12.2012unique_ptr<T[]>
есть подголовник, потому что он не знает своего размера. 18.12.2012unique_ptr<T[]>
требует меньше памяти по сравнению сvector
? 18.12.2012