#67 closed ожидается проверка (задача сдана)
HW2
Reported by: | Arseny Tsypushkin | Owned by: | Vladimir Rutsky |
---|---|---|---|
Priority: | проверка | Milestone: | |
Component: | HA#2 huffman | Version: | 1.0 |
Keywords: | Cc: | arsenytsypushkin@… |
Description
Change History (7)
comment:1 Changed 7 years ago by
Cc: | arsenytsypushkin@… added |
---|
comment:2 Changed 7 years ago by
Milestone: | ha2-milestone2 → ha2-deadline |
---|---|
Type: | ожидается проверка → ожидаются исправления |
comment:3 Changed 7 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
comment:4 Changed 7 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
Замечания:
std::priority_queue
не гарантирует, что при добавлении элементов с одним приоритетом они будут извлечены в каком-то определённом порядке, поэтому теоретически ваше решение может строить различные деревья при кодировании и декодировании, если у каких-то символов одинаковый частота встречаемости, при приведёт к ошибочному декодированию.
Сделайте сравнение в
LessByPriority
стабильным (для всех вершин, не только листьев).
- Выводимая статистика распаковки некорректна. Например, при распаковке сжатого
huffman 00_to_ff.256.in
выводится:
32 256 1284
а должно
256 256 1284
- Вы не освобождаете память для объектов, хранимых в
letters_codes_map_t letters_codes_map;
.
Почему вы храните в
letters_codes_map_t
в качестве значенияstd::vector<bool>*
а неstd::vector<bool>
?
- Используйте тип
size_t
для индексов и размеров:
for (int i = 0; i < number_of_different_letters; i++) {
Я не могу зачесть решение с утечками памяти, исправьте, пожалуйста, в ближайшее время, тогда я зачту исходя из неполного балла.
Version 0, edited 7 years ago
by
(next)
comment:5 Changed 7 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
Note: See
TracTickets for help on using
tickets.
Замечания:
std::ifstream
/std::ofstream
для ввода/вывода. У них есть методыread()
,write()
,seekg()
.code
по ссылке вfill_in_letters_table
. Сейчас вы не выделяете вектор в динамической памяти (что приводит к утечке памяти, кстати), что не требуется здесь. Передавайтеstd::vector<bool>
по ссылке, где хотите избежать лишнего копирования, а где нужно получить копию, делайте явно копию (вletters_codes_map
).typedef
: