Opened 3 years ago

Closed 3 years ago

#549 closed ожидается проверка (задача сдана)

WW #11

Reported by: savinov.vladislav Owned by: Святослав Власов
Component: WW_vector Version: 3.0
Keywords: Cc:

Description


Change History (5)

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

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

Тест на ресайз упал. Что-то у тебя там много лишнего намудрено и похоже что неправильно. Как минимум я не понимаю зачем ты освобождаешь элемент, а заместо него конструируешь пустой?

  1. get_closest_2pw написан ОЧЕНЬ сложно. Он пытается найти нужную степень двойки за логарифмическое время? Если так, то для 4 или 8 байтовых чисел это совершенно не нужно, избыточно и на одном только вызове std::log2 сжирает весь потенциальный профит.
  2. Зачем нужен этот блок?
      try {
        buf_ = new char[capacity_ * sizeof(T)];
      } catch (...) {
        throw;
      }
    

Если из new вылетает исключение, то оно просто пробрасывается дальше. Того же самого эффекта можно было достичь просто убрав этот try-catch

Пока что 7/10

comment:2 Changed 3 years ago by savinov.vladislav

Type: ожидаются исправленияожидается проверка
Version: 1.02.0
  1. переписал get_closest_2pw на обычный for
  2. ненужные try-catch-и убрал
  3. resize пофиксил - упростил разбор случаев

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

Type: ожидается проверкаожидаются исправления
  1. get_closest_pw всё равно сложно :) Он же пишется элементарно циклом
    int res = 1;
    while (res < n) { res *= 2; }
    return res;
    
  2. С гарантиями исключений всё равно всё плохо. Валгринд ругается на утечки и то, что ты юзаешь неинициализированные переменные.

9/10

comment:4 Changed 3 years ago by savinov.vladislav

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

Постарался пофиксить возможные утечки

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

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

Все тесты прошли.
Только простыни кода мне твои не нравятся, но ладно, 10/10

Note: See TracTickets for help on using tickets.