连接同一向量的 2 个元素并将其放入另一个向量中
Concatenate 2 elements of same vector and put it in another vector
我有:
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;
我认为连接向量在这里会起作用,但我不确定如何。有人可以建议我用向量连接(或任何其他逻辑)来处理这个问题吗?
如果数据类型为 bool
,则通过左/右移位很容易处理。但是data
包含三元数据(0,1,2),那么我该如何处理呢?
首先,您需要正确定义"串联"操作。你的意思是按位串联还是复杂的东西?
一种方法是使用 std::p air 模板。这将为您提供任意类型的串联。另一种方法是使用多维向量,即
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]}});
}
您可以轻松地转换它并以这种方式进行污染,但我不确定您想要什么
vector<unsigned int> data; // vector
unsigned int a = 4;
unsigned int b = 5;
data.push_back(a); //push in vector
data.push_back(b);
int count=0;
ostringstream oss; //convert
oss << a << b; //concatenate
istringstream iss(oss.str());
int c;
iss >> c; // convert to int
vector<unsigned int >paired_data;
paired_data.push_back(c);
try to put this in a loop where u concatenate always two loop interations
相关文章:
- C++从另一个类访问公共静态向量的正确方法是什么
- 为什么我不能将一个对象push_back到属于另一个类的对象向量中?
- 将一个向量插入另一个向量的某个位置
- 将指向给定子类的指针从一个向量复制到另一个向量
- C++ STD 函数运算符:有没有一种方法可以通过函数将一个向量映射到另一个向量上?
- 将向量之间的数字放在另一个向量之间<vector>>如果两个数字的差值为 1
- 如何在不复制的情况下将一个向量移动到另一个向量中
- 使用 std::transform 将向量向量 (a) 添加到另一个向量向量 (b)
- 如何按另一个向量的方向调整一个向量?
- 将字符向量复制到另一个向量
- 如何将包含另一个对象向量的对象保存到文件中,并使用C++中的二进制文件从文件中读回?
- 如何避免将向量的完整值复制到另一个容器
- 如何将所有指针从一个向量移动到另一个向量?
- 如何从另一个向量中的另一个第一元素减去向量中的第一元素
- 用一个向量替换另一个向量的方法
- 如何根据另一个向量中给出的索引拆分向量?
- 如何在另一个类中调用类型类的向量?
- 按另一个向量对一个向量进行排序
- 具有多线程支持的 RenderClass,将函数调用推送到向量以在另一个线程上调用
- 如何设置一个 std::vector 与另一个,其中两个是不同类的向量?