Opened 4 years ago
Closed 4 years ago
#840 closed ожидаются исправления (задача сдана)
WW #12
Reported by: | onofriychuk.ilya | Owned by: | Sokolov Viacheslav |
---|---|---|---|
Component: | WW_vector | Version: | 1.0 |
Keywords: | Cc: |
Description
Change History (2)
comment:1 Changed 4 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Note: See
TracTickets for help on using
tickets.
12 my_vector();
noexcept
можно просто my_vector. Это работает, потому что внутри произвольного класса (пусть он называется Hrzsch) доступно имя типа, совпадающее с названием (Hrzsch).
в текущей реализации - noexcept
final?
37 vector_impl();
noexcept
38 vector_impl(std::size_t cap);
explicit
15 throw std::logic_error("The parametr is negative or very big");
typo
лучше раскрыть, в каком смысле negative
n = 0, наверное, тоже не пойдет
какая мотивация использовать здесь aligned_alloc?
; не нужна
106 return array_.data_[index];
стоит проверить, что index < size
153 new (newArray.data_ + newArray.size_) T(array_.data_[newArray.size_]);
здест можно обойтись без копирования, можно использовать std::move
157 new (newArray.data_ + newArray.size_) T();
но здесь может произойти исключение, и поэтому порядок операций нужно будет поменять
166 if (array_.size_ == array_.capacity_)
167 reserve(std::max((std::size_t)1, array_.capacity_ * 2));
кажется, можно просто reserve(size_ + 1)
163 void my_vector<T>::push_back(const T &t)
181 void my_vector<T>::push_back(T &&t)
реализации дублируются. Самая простая реализация первого метода:
push_back(T{t})
134 check(vector.size() == 7, num, failed, str, "Faild push_back");
134 check(vector.size() == 7, num, failed, str, "Faild push_back");
136 check(vector.size() == 9, num, failed, str, "Faild resize");
typo
Если я правильно понимаю, то задача была сдана перед deadline-ом, соответственно версия 2 - финальная. Поправьте, если ошибаюсь.
PS для первой попытки - очень хорошо.