Opened 3 years ago
Closed 3 years ago
#569 closed ожидается проверка (задача сдана)
WW #11 (Ushakov)
Reported by: | ushakov.vladislav | Owned by: | Святослав Власов |
---|---|---|---|
Component: | WW_vector | Version: | 2.0 |
Keywords: | Cc: |
Description
Change History (6)
comment:1 Changed 3 years ago by
comment:3 Changed 3 years ago by
И добавил объявление operator<<
в my_vector.h
Ладно, из-за этого почему-то все перестало компилироваться.
Компилятор считает, что объявление и реализация -- две самостоятельные функции :/
comment:4 Changed 3 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
Базовые тесты прошли, всё хорошо
А вот тесты, проверяющие строгие гарантии исключений все попадали. Твой вектор не остается в том же состоянии, в котором был до вызова функции, где произошло исключение.
Если у тебя приходит resize
с аргументом большим sz_
, но меньшим cp_
, то у тебя происходит реаллокация буфера, хотя это совершенно не нужно.
resize
и reserve
существенно копируют друг друга, хотя одно прекрасно выражается через другое.
В остальном всё хорошо 8/10
comment:5 Changed 3 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 1.0 → 2.0 |
Все починил.
comment:6 Changed 3 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Все тесты на гарантии исключений попадали из-за того, что ты юзал size_t
в цикле в котором вызывал деструкторы.
for (size_t j = i - 1; j >= 0; --j) { array_[j].~T(); }
size_t
-- это беззнаковый тип. А теперь подумай что здесь произойдет, когда i = 0
?
9/10
Что быстрее:
&array_[i]
илиarray_ + i
?