如何在C ++中将vector <byte>转换为vector <uint_8>?

时间:2019-08-05 12:56:51

标签: vector byte unsigned-integer

在我的C ++代码中,我必须使用参数为vector<uint8_t>.

的外部库函数

但是在我的源代码中,我将变量保留为向量,所以当变量被传递到函数中时,如何进行从vector<byte>vector<unint8_t>的对话。

我的资料如下。

//来自标头的外部库函数:

uint16_t  GetLinkCRC16(const vector<uint8_t> &buffer);


vector<byte> m_Seq;

//调用我的cpp:

vector<byte> writeBytes(m_Seq);
GetLinkCRC16(writeBytes);

当我将“ writeBytes”传递给“ GetLinkCRC16”方法时,我遇到类型对话错误。

1 个答案:

答案 0 :(得分:0)

不幸的是,“没有办法”在不进行复制(以及类型转换)的情况下制作具有不同类型的向量。

std::vector<byte> writeBytes(m_Seq);

std::vector<uint8_t> writeBytesClone(writeBytes.begin(), writeBytes.end());
GetLinkCRC16(writeBytesClone);

我说“没办法”是什么意思。有办法,但是是platform-dependent and, probably, UB way to wrap an array in a vector