我有两个向量 - 一个是全局的,第二个是局部的。我需要将元素从局部向量复制到全局,按顺序排列第1,第4,第7 ......在本地,一个是大小为6的数组。我的代码工作正常,但它总是再进行一次迭代,导致加载错误的数据。在最后一次迭代中,它还会复制错误的数据。你知道我的代码有什么问题吗?
int iter = 0;
float nr;
for (i = 0; i < vect_local.size(); i++){
iter += 1;
nr = vect_local[i];
vect_global.push_back(nr);
i += 2;
if((vect_local.size()/iter) == 3){
iter = 0;
break;
}
}
编辑:for(i = 0; i&lt; = vect_local.size(); i ++) 愚蠢的错字。但我的问题仍然是一样的......
答案 0 :(得分:1)
你的循环条件应该是i&lt; vect_local.size()因为最后一个索引是size-1
int iter = 0;
float nr;
for (i = 0; i < vect_local.size(); i+=3){
// ^
答案 1 :(得分:0)
也许这样的事情?
int main () {
int globalarray[16]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
int localarray[6]={0,0,0,0,0,0};
int internalcounter=0;
for(int i=0;i<int(sizeof(globalarray)/sizeof(int));i=i+3)
{
localarray[internalcounter] = globalarray[i];
internalcounter+=1;
}
for(int i=0;i<6;i++)
{
cout<<localarray[i]<<endl;
}
return 0;
}
打印: 1 4 7 10 13 16