Opened 4 years ago

Closed 4 years ago

#831 closed ожидаются исправления (задача сдана)

WW #12

Reported by: luchinin.aleksey Owned by: luchinin.aleksey
Component: WW_vector Version: 2.0
Keywords: Cc:

Description


Change History (4)

comment:1 Changed 4 years ago by Дмитрий Свиридкин

Owner: changed from Дмитрий Свиридкин to luchinin.aleksey
Type: ожидается проверкаожидаются исправления

T operator[](std::size_t index) const;
Надо бы константную ссылку возвращать.

Не надо менять имена типов и интерфейсы, требуемые в публичном условии! вы контрольные тесты ломаете!

Пробел между именем шаблона и угловыми скобками аргументов уж точно лучше не ставить -- так только всех с толку сбивать. Особенно, если у вас все операторы пробелами окружаются.

Какой-то у вас скромный вектор -- после push_back 32 элементов bad_alloc кинул, попытавшись выделить 4 Гб памяти!

resize на уменьшение приведет к утечке памяти в лучшем случае и к UB в долгосрочной перспективе.

for (; mvi.size_ < mvi.capacity_; ++mvi.size_) {
            new(mvi.array_ + mvi.size_)T();
        }

Точно до capacity?

capacity не всегда добивается до степени двойки, как требуется в условии.

в reserve нужен move

comment:2 Changed 4 years ago by luchinin.aleksey

Owner: changed from luchinin.aleksey to Дмитрий Свиридкин
Type: ожидаются исправленияожидается проверка
Version: 1.02.0

Исправил недочёты

comment:3 Changed 4 years ago by Дмитрий Свиридкин

Owner: changed from Дмитрий Свиридкин to luchinin.aleksey
Type: ожидается проверкаожидаются исправления

Подключать заголовки надо там, где вы их используете.

в impl не надо подключать исходный заголовок.

resize, push_back нарушают строгую гарантию исключений.

explicit my_vector(std::size_t size = 0);
Делать таким образом конструктор по умолчанию нелья -- он будет требовать наличие конструктора по умолчанию у T.

reserve работает неверно.

Оператор вывода печатат личшний пробел.

comment:4 Changed 4 years ago by Дмитрий Свиридкин

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

7

Note: See TracTickets for help on using tickets.