gpt4 book ai didi

c++ - 如何将来自 std::vector 的数据存储在 std::vector

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:03:47 25 4
gpt4 key购买 nike

我想做的是将数据存储在 std::vector<short> 中在std::vector<uint8_t> ,将每个 short 分成两个 uint8_t 值。我需要这样做,因为我有一个只会发送 std::vector<uint8_t> 的网络应用程序的,所以我需要转换为 uint8_t 以发送,然后在收到 uint8_t vector 时转换回来。

通常我会做的(以及我在查找问题时看到的)是:

std::vector<uint8_t> newVec(oldvec.begin(),oldvec.end());

但是,如果我理解正确,这将采用每个单独的短值,截断为 uint8_t 的大小,并在我想要的相同时创建一个包含一半数据量和相同条目数的新 vector 条目数量翻倍的数据量。

包含逆向过程的方法并尽可能避免复制的解决方案会有很大帮助。谢谢!

最佳答案

要在 8 位边界处拆分某些内容,您可以使用右移和掩码,即

uint16_t val;
uint8_t low = val & 0xFF;
uint8_t high = (val >> 8) & 0xFF;

现在您可以将最高价和最低价放入订单中的第二个 vector 中。

关于c++ - 如何将来自 std::vector<short> 的数据存储在 std::vector<uint8_t> 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45805727/

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