Opened 3 years ago
Closed 3 years ago
#531 closed ожидается проверка (задача сдана)
WW_vector Kuznec lab_11
Reported by: | Anton | Owned by: | Антон Филатов |
---|---|---|---|
Component: | WW_vector | Version: | 3.0 |
Keywords: | Cc: |
Description
Change History (6)
comment:1 Changed 3 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 Changed 3 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 1.0 → 2.0 |
1) Добавил iostream в хедер (хотя у меня и без него компилировалось)
2) Тесты сейчас вроде бы не должны падать
3) Пустой вектор делаю от capacity 1
4) Swap trick
5) C resize-ом сейчас тоже вроде все нормально
Ошибки valgrind пока пофиксить не смог.
comment:4 Changed 3 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
Что-то у вас reserve не компилируется для класса без дефолтного конструктора.
То есть хорошо, что вы выделили отдельную функцию для шаблона с дефолтным конструктором и без него, но вообще говоря обычный reserve должен работать для всех классов - и без дефолтного конструктора тоже.
Если выпилить тесты для классов без дефолтного конструктора, то ломаются следующие тесты:
my_vector<T> vec(10); assert(vec.size() == 10); assert(vec.capacity() == 16); assert(!vec.empty()); for(size_t i = 0; i < vec.size(); ++i) { assert(vec[i] == T()); }
А также на копирование, на reserve и на resize
Эти тесты довольно длинные. Я не очень хочу сюда простыню копипастить. Если сами ошибку не найдёте - пишите, я скину, на чём у вас ломается
по стилю, кажется, всё норм
6,5/10
comment:5 Changed 3 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 2.0 → 3.0 |
comment:6 Changed 3 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Тесты пройдены.
А у вас и в прошлой посылке была вечная копипаста (array_ + i)->~T();
?
Просто кажется, что можно clear выразить через pop_back, а потом везде юзать именно clear
9,5/10
две ошибки при компиляции:
1) забыли include iostream в хедер
2)
По тестам всё тоже не очень здорово.
К сожалению с сегфолтом падают все тесты на product, поэтому я не могу сказать, есть ли какие-то ещё ошибки в тестах.
А с сегфолтом они падают, скорее всего из-за вашего оператора new.
В ваш класс Product добавьте деструктор, который делает delete name_;
А в main напишите так:
containers::my_vector<product::Product> vec;
Сразу могу указать на такие ошибки:
Пока 2/10 за то, что верна общая логика