KorotinEgor - #1
Conversation
|
@IljarSmirnov @kermanglobe |
kermanglobe
left a comment
There was a problem hiding this comment.
если мне не изменяет память, то должны ещё быть:
- упорядоченная таблица на массиве
- логирование времени на выполнение операций с таблицами
| } while (str == ""); | ||
| T1.add(str, res); | ||
| T2.add(str, res); | ||
| T3.add(str, res); |
There was a problem hiding this comment.
зачем добавлять переменную во все три таблицы сразу?
There was a problem hiding this comment.
Даже не знаю, Волокитин сказал.
Про массив в тз ничего нет) и у меня не записано
Про время я и сам выше написал
| } | ||
| else if ((s[i] >= 'A' && s[i + 3]<='Z') || (s[i] >= 'a' && s[i + 3]<='z')) { //Work with polynomial names |
There was a problem hiding this comment.
забыл сюда впихнуть проверку на выход за пределы строки
|
|
||
| TEST(OrderedTable, delete_is_correct) { | ||
| OrderedTable<std::string, Polynom> T; | ||
| Polynom p = Polynom("1+x"); | ||
| T.add("pol1", p); | ||
| T.del("pol1"); | ||
| ASSERT_ANY_THROW(T.find("pol1")); | ||
| } No newline at end of file |
There was a problem hiding this comment.
можно накинуть тестов с разными случаями удаления (удаление листа, удаление вершины с одним и двумя потомками, удаление головы без потомков или с потомками)
There was a problem hiding this comment.
Можно то можно, но, зная свой код, все эти случаи сводятся к удалению вершины у которой нет хотя бы одного из потомков
| } | ||
| T find(const K& key_) const { |
There was a problem hiding this comment.
лучше возвращать указатель на nd->data (текущая реализация предполагает копирование T при каждом обращении к таблице)
There was a problem hiding this comment.
Идея была в том, чтобы не дать пользователю таким образом изменять таблицу. Хотя, не отрицаю, возможно это и излишне
|
|
||
| void HashTable::add(const std::string& s, const Polynom& P) { | ||
| try { | ||
| find(s); | ||
| } | ||
| catch (std::exception& e) { |
There was a problem hiding this comment.
к чему блок try/catch, если можно было сделать через if/else?
There was a problem hiding this comment.
Проблема в том, что find бросает исключение, если не нашëл такого ключа, если бы я возвращал не элемент, а указатель, можно было бы действительно обойтись if/else, но я так не делал; почему? Описано выше
There was a problem hiding this comment.
Буду рад, если предложишь вариант, каким образом, возвращая элемент, а не ссылку на него, избавиться от try/catch
There was a problem hiding this comment.
если возвращать элемент, а не указатель, то никак :)
| class HashTable { | ||
| std::pair<short int, std::pair<std::string, Polynom>>* mas; |
There was a problem hiding this comment.
неплохо бы добавить комментарии, какое значение short int за что отвечает
|
@ValentinV95 можно проверять |
|
Лабораторная принята |
No description provided.