![](/img/trans.png)
[英]C++ Unable to convert std::vector<BYTE> to a string or char array
[英]C++ how to convert char array to vector of bytes (vector<byte>)
我有大量的字符
char myCharArray[] = {
0x9B,0x3E,0x34,0x87,0xFD,0x24,0xB4,0x64,0xBA,0x80,0x04,0xFD,
0xDF,0x23,0x41,0xEE,0x00,0x00,0x00,0x00,0xAC,0xF9,0x8F,0x00,
...
}
如何将myCharArray转换为vector<byte>
您可以将char
数组作为std::byte
数组进行检查。 所以最有效的解决方案是:
#include <iterator> // for std::begin / end
std::vector<std::byte> v(
reinterpret_cast<std::byte*>(std::begin(myCharArray)),
reinterpret_cast<std::byte*>(std::end(myCharArray))
);
通过这种方式,向量预先知道要分配多少内存,并且它可以通过 memcpy 或类似的高效例程执行复制,而不是一个接一个地复制一个字节,并且必须在其间多次重新分配。
std::vector<std::byte> bytes;
for (char &c : myCharArray) {
bytes.push_back(static_cast<std::byte>(c));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.