Этому коду не хватает контекста.Это затрудняет определение проблемы.Из сообщения об ошибке кажется, что вы, по крайней мере, не определили size_type
.Также выглядит, как будто T
не определено, что заставляет меня думать, что вы пытаетесь определить конструктор вне строки, но это будет выглядеть примерно так:
template <typename T>
vector<T>::vector(size_type n, T const& value):
my_vect(new T[2u * n]),
length(n)
{
for (size_type i(0); i != n; ++i) {
my_vect[i] = value;
}
// or: std::fill_n(my_vect, n, value);
}
Это также исправило несколько ошибокint
против T
, vect
против my_vext
, неинициализированное использование length
).Обратите внимание, что идиоматический способ приращения переменной в C ++ заключается в использовании преинкремента (да, язык на самом деле должен называться «++ C» по большему количеству причин, чем просто идиоматическое использование).