我想转换 std::uint32
至 std::vector<std::uint8>
以比这更好的方式:
std::uint32_t base_rva = 0xccddee00;
std::vector<std::uint8_t> vraw_data;
//copying base_rva to raw_data
vraw_data.resize(sizeof(base_rva));
std::memcpy(vraw_data.data(), &base_rva, sizeof(base_rva));
我在寻找类似的东西:
std::vector<std::uint8_t> vraw_data((std::uint8_t*)&base_rva, sizeof(base_rva));
有什么建议吗?
最佳答案
I was looking for something like:
std::vector<std::uint8_t> raw_data((std::uint8_t*)&base_rva, sizeof(base_rva));
std::vector
没有这样的构造函数可用, 但假设您想存储 std::uint32_t
的拷贝std::vector<std::uint8_t>
中的内部表示你可以简单地做
std::uint32_t data = 42;
std::vector<std::uint8_t> raw_data( (std::uint8_t*)&data
, (std::uint8_t*)&(data) + sizeof(std::uint32_t));
根据 std::vector
constructors 中的 (4) .
关于C++11/14 将 std::uint32 转换为 std::vector<std::uint8>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38192181/