迭代向量

时间:2016-09-08 02:21:39

标签: c++ vector

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

它涉及(除其他事项外)迭代向量并且我得到一个奇怪的结果。

的main.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 ++,我觉得我犯了一个小错误。如果您需要更多详细信息,请与我们联系。

谢谢你的时间!

1 个答案:

答案 0 :(得分:3)

当您将cout写入char时,会将其视为int。您需要转换为std::cout << static_cast<int>(*vSignalIt) << std::endl;

<domain_home>/servers/AdminServer/data/ldap