Opened 3 years ago
Closed 3 years ago
#353 closed ожидается проверка (задача сдана)
WW #7
Reported by: | movsin.marat | Owned by: | Святослав Власов |
---|---|---|---|
Component: | WW Matrix | Version: | 3.0 |
Keywords: | Cc: |
Description
Change History (5)
comment:1 Changed 3 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 Changed 3 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 1.0 → 2.0 |
comment:3 Changed 3 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
- Не надо вот так писать
(*this).lin_comb(m, -1);
. Для вызова методов у объекта по указателю есть оператор->
:this->lin_comb(m, -1);
, а вообще тут и этого не нужно, ты хочешь вызвать метод у этого же самого объекта -- можешь просто вызвать его по имениlin_comb(m, -1);
. operator*=
делает лишнее копирование. У тебя сначала создается временный объект в результате умножения, а потом этот временный объект через оператор присваивания копируется в*this
, этого копирования можно избежать.- Давай избавимся от копи-пасты в конструкторе копирования и операторе присваивания. Например, через swap-trick.
- у тебя есть
memcpy
иmemset
, ими можно скопировать или заполнить элементы намного быстрее, чем в цикле. - В некоторых местах съехали отступы. У тебя в отступах намешана табуляция и пробелы. Видимо ты либо откуда-то куски кода копировал, либо в разных редакторах его писал. У меня стоит длина отступа 2 пробела, поэтому всё съехало. Исправь.
Пока 7.5/10
comment:4 Changed 3 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 2.0 → 3.0 |
Note: See
TracTickets for help on using
tickets.
this->operator==(m)
? Можно же просто*this == m
Matrix::print
не надо писать тело цикла на той же строке+=,-=,*=
) через неприсваивающие (+,-,*
), это ведет к лишним аллокациям и копированию памяти (сначала при создании временной матрицы, а потом при присваивании временной матрицы в*this
. Это вредит производительности. Можно либо написать собственную реализацию, либо реализовать неприсваивающие операции через присваивающие и временную матрицу.