gpt4 book ai didi

C++ 编写一个函数,将 2 个 vector 的内容交织在一个 vector 中

转载 作者:行者123 更新时间:2023-11-28 03:04:44 26 4
gpt4 key购买 nike

我想编写一个函数,它将两个 vector 作为参数 (int) 并返回一个 vector ...现在在函数中我必须交错 2 个 vector 的值并将它们(交错)放在一个新 vector 中,例如:

vector<int> vec1 = {1,2,3, 4, 5,6,7};
vector<int> vec2 = {10,11,12};
=> Output vec 3 = 1,10,2,11,3,12,4,5,6,7

vector 可以有不同的长度...我该怎么做?我试过:

vector<int>  entrelace(vector<int> a , vector<int> b) {
vector<int> vec3(a.size()+b.size());
size_t i(0);
size_t j(0);
size_t k(0);
size_t t(0);

while ( t< vec3.size()) {

if (i < a.size()) {
vec3[k] = a[i];
k++;
i++;
}
if (j < b.size()) {
vec3[k] = b[j];
k++;
j++;
}
}
t++;

/**
while ( i< (a.size() + b.size()) )
{
if (t < a.size()) {
vec3.push_back(a[t]);
t++;
k++;
}
if (h < b.size()) {
vec3.push_back(b[h]);
h++;
k++;
}
i++;
}
* **/
return vec3;
}

最佳答案

您几乎是正确的。每次在 vec3

中设置元素时,只需递增 t
while ( t< vec3.size()) {
if (i < a.size()) {
vec3[k] = a[i];
k++;
i++;
t++;
}
if (j < b.size()) {
vec3[k] = b[j];
k++;
j++;
t++;
}
}

顺便说一句,更仔细地缩进代码会帮助您发现 t++ 发生在 while 循环之外。

另外,正如 john 所说,kt 是重复工作。代码可以简化为

while (k < vec3.size()) {
if (i < a.size()) {
vec3[k++] = a[i++];
}
if (j < b.size()) {
vec3[k++] = b[j++];
}
}

关于C++ 编写一个函数,将 2 个 vector 的内容交织在一个 vector 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20018103/

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