Я пытаюсь реализовать алгоритм кодирования Хаффмана с помощью интеллектуальных указателей, но он работает неправильно. Я узнал, что на каком-то этапе в 'build_tree' указатель имеет значение nullptr. Я не знаю почему.
Буду очень признателен, если вы сообщите мне, что с ним не так, и Извините, что делюсь всем кодом, но я подумал, что вам может понадобиться весь контекст программы:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
class node{
public:
char data;
unsigned int freq;
std::shared_ptrleft;
std::shared_ptrright;
node(const char & x = '0', const unsigned int & y = 0, const std::shared_ptr&l = nullptr, const std::shared_ptr&r = nullptr) : data(x) , freq(y), left(l),right(r){}
};
class comp{
public:
bool operator() (const std::shared_ptr&x, const std::shared_ptr&y){
return x->freq > y->freq;
}
};
std::shared_ptrbuild_tree(const std::unordered_map&tree){
try{
if(tree.empty()) throw std::invalid_argument("Something went wrong!");
}catch (std::invalid_argument & e){
std::cerrright,huffman);
}
std::string encode(const std::string & str, std::unordered_map&huffman){
try{
if(str.empty() or huffman.size() == 0) throw std::invalid_argument("Something went wrong!");
}catch(std::invalid_argument & e){
std::cerr
Подробнее здесь: https://stackoverflow.com/questions/793 ... ot-working
Кодирование Хаффмана с использованием интеллектуальных указателей не работает ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Кодирование Хаффмана с использованием интеллектуальных указателей не работает
Anonymous » » в форуме C++ - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Кодирование Хаффмана с использованием интеллектуальных указателей не работает [закрыто]
Anonymous » » в форуме C++ - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Полиморфизм с использованием интеллектуальных указателей возвращает ошибку C2679
Anonymous » » в форуме C++ - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Существуют ли современные форматы изображений, использующие простое кодирование Хаффмана?
Anonymous » » в форуме Python - 0 Ответы
- 79 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Когда память интеллектуальных указателей очищается при вызове execv() в программе?
Anonymous » » в форуме C++ - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-