gpt4 book ai didi

c++ - 如何连接二维数据数组

转载 作者:行者123 更新时间:2023-11-30 01:39:00 25 4
gpt4 key购买 nike

我正在尝试读取如下二维数据:

12345678
abcdefgh
ABCDEFGH

利用我可用的 API,我可以将它读入两部分的一维数组,从中间拆分:

第一个数组:1234abcdABCD

第二个数组:5678efghEFGH

现在我需要合并这些以获得 12345678abcdefghABCDEFGH

有没有比 memcpy 和仔细计数更复杂/更稳定的方法?

最佳答案

一系列插入可以完成这项工作。可以将代码提取到一个函数中,该函数以 block 数和 block 大小作为参数。

std::vector<unsigned char> my_merge(
const std::vector<unsigned char>& part1,
const std::vector<unsigned char>& part2,
const unsigned int chunk_count,
const unsigned int chunk_size)
{
std::vector<unsigned char> merged;
merged.reserve(part1.size() + part2.size());
for(unsigned int i = 0; i < chunk_count; ++i)
{
merged.insert(
merged.end(),
part1.begin() + i * chunk_size,
part1.begin() + (i + 1) * chunk_size);
merged.insert(
merged.end(),
part2.begin() + i * chunk_size,
part2.begin() + (i + 1) * chunk_size);
}
return merged;
}

用法:

std::vector<unsigned char> merged = my_merge(part1, part2, 3, 4);

Demo

关于c++ - 如何连接二维数据数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46696559/

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