gpt4 book ai didi

c++ - std::copy 从内存缓冲区到 vector

转载 作者:搜寻专家 更新时间:2023-10-31 01:42:34 24 4
gpt4 key购买 nike

我正在尝试将二进制数据从内存缓冲区复制到 vector 。

请让我知道以下尝试有什么问题

每次我得到 vector 大小为 0

int AhaConnectAPI::unpackDataArray(uint8_t* src, vector<uint64_t> dest, uint32_t destvectorSize, int offset)
{

cout<<"\nstd::copy";
std::copy(src + offset, src + offset + sizeof(uint64_t) * length, back_inserter(dest));
return length * 8;
}

int AhaConnectAPI::unpackDataArray(uint8_t* src, vector<uint64_t> dest, uint32_t destvectorSize, int offset)
{

uint64_t element;

for(unsigned int i = 0 ; i<destvectorSize; i++)
{
offset = unpackData(src, element, offset);
dest.push_back(element);
}

return dest.size() * sizeof(uint64_t);

}

最佳答案

在你的第一个unpackDataArray() : 你的 src类型为 uint8_t*但你使用 sizeof(uint64_t)std::copydest , 和 offset是一个 int .尝试类似的东西:

std::copy(static_cast<uint64_t*>(src) +
static_cast<uint64_t>(offset),
static_cast<uint64_t*>(src) +
static_cast<uint64_t>(offset) + sizeof(uint64_t) * length,
back_inserter(dest));

offset可能需要进一步调整。还有 length突然出现。

关于c++ - std::copy 从内存缓冲区到 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26650861/

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