C++-将数据从浮点向量复制到uint8向量
C++ - copy data from float vectors to uint8 vector?
我有几个浮点向量,我想将它们的字节复制到一个字节向量中。实现这一目标的最佳方法是什么?对每个浮点向量进行迭代,将浮点转换为字节和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);
std::vector
有一个构造函数,它接受一对迭代器并将其复制到向量中,您应该从这一点开始。
也不清楚您所说的"将浮点转换为字节"是什么意思。这仅仅是一种贬低吗?你的代码表明你的意图正好相反,是向上浮动。
相关文章:
- 将指向给定子类的指针从一个向量复制到另一个向量
- 将字符向量复制到另一个向量
- 将shared_ptr的向量复制到抽象基的派生类
- 将一种数据类型的向量复制到同一数据类型的结构向量中的有效方法是什么
- 自定义类对象的C++向量 - 复制构造函数已删除 - std::ifstream
- 如何在C++中将一个对象从一个向量复制到另一个向量?
- 将特征向量复制到 C 数组
- 将std ::向量复制到CV :: Mat_的行操作相同
- 将向量复制到 std::string
- 如何以相反的顺序将整个向量复制到队列中
- 按索引将类类型元素从一个向量复制到另一个 c++
- 使用迭代器将向量复制到数组中
- 为什么是非法的:将指针向量复制到指向常量的指针向量中
- 将元素从一个向量复制到另一个向量的最有效方法,给定一个不被复制的索引列表
- C++-将数据从浮点向量复制到uint8向量
- 将字符串从向量复制到字符串
- 我可以使用STD ::复制将数据的位模式从整数向量复制到一系列未签名的字符
- 将指针从一个向量复制到另一个向量;地址指出了变化
- 如何将内容从一个字符串向量复制到另一个字符串向量
- 以相反的顺序将一个向量复制到另一个向量