gpt4 book ai didi

C++ - 将数据从 float vector 复制到 uint8 vector ?

转载 作者:行者123 更新时间:2023-11-28 07:50:32 24 4
gpt4 key购买 nike

我有几个浮点 vector ,我想将它们的字节复制到一个字节 vector 。完成此任务的最佳方法是什么?迭代每个浮点 vector ,将 float 转换为字节并在 buffer 上使用 push_back() 似乎是一种低效的方法。

void CopyToByteVector(Vector<uint8_t>& buffer)
{
Vector<float> vec1 = //....
Vector<float> vec2 = //....

// best way to copy byte values of vec1, vec2 into buffer?
}

最佳答案

就标准而言,我认为这不能保证有效。我不认为有一种方法可以做你所要求的,这不是未定义的行为。话虽如此,我几乎可以肯定,在几乎所有情况下(并且可能在您关心的绝对所有情况下),它都会起作用。

uint8_t * ibegin = reinterpret_cast<uint8_t*>(&vec1[0]);
auto size = vec1.size() * (sizeof(float)/sizeof(uint8_t));
buffer.assign(ibegin, ibegin + size);

// Not sure what you wanted to do with vec2. Append it?
ibegin = reinterpret_cast<uint8_t*>(&vec2[0]);
size = vec2.size() * (sizeof(float)/sizeof(uint8_t));
buffer.insert(buffer.end(), ibegin, ibegin + size);

关于C++ - 将数据从 float vector 复制到 uint8 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13894186/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com