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 ushakov.vladislav

Что быстрее: &array_[i] или array_ + i?

comment:2 Changed 3 years ago by ushakov.vladislav

Добавил swap-trick

comment:3 Changed 3 years ago by ushakov.vladislav

И добавил объявление operator<< в my_vector.h
Ладно, из-за этого почему-то все перестало компилироваться.
Компилятор считает, что объявление и реализация -- две самостоятельные функции :/

Last edited 3 years ago by ushakov.vladislav (previous) (diff)

comment:4 Changed 3 years ago by Святослав Власов

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

Базовые тесты прошли, всё хорошо

А вот тесты, проверяющие строгие гарантии исключений все попадали. Твой вектор не остается в том же состоянии, в котором был до вызова функции, где произошло исключение.

Если у тебя приходит resize с аргументом большим sz_, но меньшим cp_, то у тебя происходит реаллокация буфера, хотя это совершенно не нужно.

resize и reserve существенно копируют друг друга, хотя одно прекрасно выражается через другое.

В остальном всё хорошо 8/10

comment:5 Changed 3 years ago by ushakov.vladislav

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

Все починил.

comment:6 Changed 3 years ago by Святослав Власов

Resolution: задача сдана
Status: assignedclosed

Все тесты на гарантии исключений попадали из-за того, что ты юзал size_t в цикле в котором вызывал деструкторы.

      for (size_t j = i - 1; j >= 0; --j) {
        array_[j].~T();
      }

size_t -- это беззнаковый тип. А теперь подумай что здесь произойдет, когда i = 0?

9/10

Note: See TracTickets for help on using tickets.