如何在 C++ 中将 vector<byte> 转换为 vector<uint_8>?
how to convert from vector<byte> to vector<uint_8> in c++?
在我的 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" 方法时出现类型对话错误。
不幸的是,"no way" 可以在不进行复制(和类型转换)的情况下制作具有不同类型的向量。
std::vector<byte> writeBytes(m_Seq);
std::vector<uint8_t> writeBytesClone(writeBytes.begin(), writeBytes.end());
GetLinkCRC16(writeBytesClone);
我说 "no way" 是什么意思。有办法,不过是一个platform-dependent and, probably, UB way to wrap an array in a vector.
在我的 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" 方法时出现类型对话错误。
不幸的是,"no way" 可以在不进行复制(和类型转换)的情况下制作具有不同类型的向量。
std::vector<byte> writeBytes(m_Seq);
std::vector<uint8_t> writeBytesClone(writeBytes.begin(), writeBytes.end());
GetLinkCRC16(writeBytesClone);
我说 "no way" 是什么意思。有办法,不过是一个platform-dependent and, probably, UB way to wrap an array in a vector.