【发布时间】:2013-11-16 11:53:05
【问题描述】:
我想写一个函数,它接受两个向量作为参数(int)并返回一个向量... 现在在函数中,我必须交错来自 2 个向量的值并将它们(交错)放入一个新向量中,例如:
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<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;
}
【问题讨论】:
-
为什么
t++在while循环之外?