Я пытаюсь перевести строку в кодировку Хаффмана, используя карту Хаффмана, которая хранится в unordered_map<char, string>
.Как вы можете видеть, он печатает правильно, где я помещаю его, но после того, как я push_back()
закодировал результат, а затем распечатал его, он отображается как 1 с вместо 1 с 0.Есть идеи?
Я попытался распечатать и расшифровать.
vector<bool> result{};
for (auto i : huffmanMap)
{
cout << i.first << ": " << i.second << "*" << endl;
}
for (auto word: text)
{
cout << word << endl;
for (auto ch : word)
{
cout << "char: " << ch << " encoding: "<< huffmanMap[ch] <<
endl;
for (auto binarych: huffmanMap[ch])
{
cout << "binarych " << binarych << endl;
result.push_back(binarych);
}
}
}
for (auto next: result)
{
cout << next;
}
cout << endl;
return result;
a: 0*
c: 10*
b: 11*
aaabbc
char: a encoding: 0
binarych 0
char: a encoding: 0
binarych 0
char: a encoding: 0
binarych 0
char: b
encoding: 11
binarych 1
binarych 1
char: b
encoding: 11
binarych 1
binarych 1
char: c encoding: 10
binarych 1
binarych 0
111111111