gpt4 book ai didi

c++ - 连接同一 vector 的 2 个元素并将其放入另一个 vector 中

转载 作者:行者123 更新时间:2023-11-28 05:47:36 25 4
gpt4 key购买 nike

我有:

std::vector<unsigned int> data;

data[0] = 1;
data[1] = 1;
data[2] = 0;
data[3] = 1;
data[4] = 0;
data[5] = 2;
data[6] = 0;
data[7] = 2;
data[8] = 1;
data[9] = 2;
data[10] = 1;
data[11] = 2;

现在我想成对排列,比如11 01 02 02 12 12。

paired_data[0] = data[0]data[1]
paired_data[1] = data[2]data[3] etc....

paired_data[0] = 11;
paired_data[1] = 01;
paired_data[2] = 02;
paired_data[3] = 02;
paired_data[4] = 12;
paired_data[5] = 12;

我认为连接 vector 在这里会奏效,但我不确定如何。有人可以建议我用 vector 串联(或任何其他逻辑)来处理这个问题吗?

如果数据是 bool 类型,那么就可以很容易地处理左移/右移。但是 data 包含三元数据 (0,1,2),那么我该如何处理呢?

最佳答案

首先,您需要正确定义“串联”操作。您是指按位连接还是其他复杂的东西?

一种方法是使用 std::pair模板。这将为您提供任意类型的连接。另一种方法是使用多维 vector ,即

std::vector<int> data;
std::vector<std::array<int,2>> paired_data;
for (size_t i = 0; i < data.size() - 1; i+=2)
{
paired_data.push_back(std::array<int,2>{{data[i], data[i+1]}});
}

关于c++ - 连接同一 vector 的 2 个元素并将其放入另一个 vector 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35939022/

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