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 Sokolov Viacheslav

Type: ожидается проверкаожидаются исправления

12 my_vector();
noexcept

14 my_vector(const my_vector<T> &other);

можно просто my_vector. Это работает, потому что внутри произвольного класса (пусть он называется Hrzsch) доступно имя типа, совпадающее с названием (Hrzsch).

26 const T &operator[](std::size_t index) const;
27 T &operator[](std::size_t index);

в текущей реализации - noexcept

35 struct vector_impl

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, наверное, тоже не пойдет

24 my_vector<T>::vector_impl::vector_impl(std::size_t cap) : data_(static_cast<T *>(aligned_alloc(alignof(T), sizeof(T) * cap))),

какая мотивация использовать здесь aligned_alloc?

44 my_vector<T>::my_vector(){};

; не нужна

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 для первой попытки - очень хорошо.

comment:2 Changed 4 years ago by Sokolov Viacheslav

Resolution: задача сдана
Status: assignedclosed
Note: See TracTickets for help on using tickets.