Opened 6 years ago
Closed 6 years ago
#222 closed ожидается проверка (задача сдана)
Проверка домашнего задания №2 Хаффман
Reported by: | Andrey Chausov | Owned by: | rutsky,grabovoy.philipp |
---|---|---|---|
Priority: | проверка | Milestone: | ha2-deadline |
Component: | HA#2 huffman | Version: | 1.0 |
Keywords: | Cc: |
Description
Change History (4)
comment:1 follow-up: 2 Changed 6 years ago by
Milestone: | ha2-milestone2 → ha1-deadline |
---|---|
Type: | ожидается проверка → ожидаются исправления |
comment:2 Changed 6 years ago by
Replying to grabovoy:
reinterpret_cast
-- достаточно сильное приведение типа (в данном случае:uint8_t *
<->char *
). Обычно оно используется для приведения разных по размерам/внутренним устройствам классов, для избегания вызоваoperator T()
. Здесь такого не требуется,static_cast
вполне подойдет. Подробнее будет далее в курсе.
Здравствуйте,
У меня возникли вопросы с замечанием №5. Типы указателей на uint8_t и char не удаётся напрямую привести с помощью static_cast. Я правильно понимаю, что следует сначала привести uint8_t * к void *, а потом к char *?
comment:3 Changed 6 years ago by
Milestone: | ha1-deadline → ha2-deadline |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Спасибо за проверку, поправил замечания.
comment:4 Changed 6 years ago by
Resolution: | → задача сдана |
---|---|
Status: | new → closed |
Привет!
Я правильно понимаю, что следует сначала привести uint8_t * к void *, а потом к char *?
Прошу прощения, не доглядел: явно рекомендуют при преобразованиях над указателями использовать именно reinterpret_cast
(http://en.cppreference.com/w/cpp/language/reinterpret_cast , п. 5).
И static_cast<std::string> (argv[1])
не очень красиво смотрится :) Можно смело оставлять полноценное конструирование строки (в данном случае это одно и то же)
Привет!
Несколько замечаний:
empty.in
выглядит загадочно:Node(Node * left, Node * right)
все можно задать через список инициализации.reinterpret_cast
-- достаточно сильное приведение типа (в данном случае:uint8_t *
<->char *
). Обычно оно используется для приведения разных по размерам/внутренним устройствам классов, для избегания вызоваoperator T()
. Здесь такого не требуется,static_cast
вполне подойдет. Подробнее будет далее в курсе.*_cast
. И стилистически это лучше, и они более конкретны.for (auto && i : code) {...}
?