c++ - 迭代 vector

标签 c++ vector

我正在尝试完成一些家庭作业的代码。

它涉及(除其他事项外)迭代 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/

相关文章:

C++ boost::qi 将空格和换行符分隔的数字解析为二维 vector

arrays - 为什么,如果 MATLAB 是列优先的,某些函数会输出行向量?

c++ - 二进制 '=' : no operator found which takes a left-hand operand of type 'const Thing'

C++从类的 vector 指针访问类的成员

c++ - 用 C++ 重写 grep

c++ - SQLite:连续调用finalize

java - 将值从构造函数传递到类中的私有(private)整数

c++ - vector 下标超出范围错误 C++

c++ - 使用 ENet 进行 NAT 打洞

c++ - 为什么lambda init-capture对于unique_ptr不起作用?