我正在尝试完成一些家庭作业的代码。
它涉及(除其他事项外)迭代 vector ,我得到了一个奇怪的结果。
主要.cpp
#include "tp1.hpp"
int main(int argc, char** argv) {
std::vector<uint8_t> signal { 1,2,0,0,1,2,1,0,2,1,2,1,0,0,0,1,2,1 };
std::vector<LZ77Code> code = lz77_encode(signal, 18, 9);
return 0;
}
tp1.hpp
inline std::vector<LZ77Code> lz77_encode(const std::vector<uint8_t>& vSignal, size_t N, size_t n1) {
std::vector<LZ77Code> vCode;
std::vector<uint8_t>::const_iterator vSignalIt; //Iterator for the vector in the parameters
vSignalIt = vSignal.begin();
while (vSignalIt != vSignal.end())
{
std::cout << *vSignalIt << std::endl;
vSignalIt++;
}
return vCode;
}
结果我在控制台中打印了这个:
☺
不是我真正想要的,你猜对了。我将代码缩短到最低限度,因为自从我处理 C++ 以来已经有一段时间了,我觉得我犯了一个微不足道的错误。如果您需要更多详细信息,请告诉我。
感谢您的宝贵时间!
最佳答案
当您将 uint8_t
写入 cout
时,它会将其视为 char
。您需要转换为 int
。
std::cout << static_cast<int>(*vSignalIt) << std::endl;
关于c++ - 迭代 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39381636/