在C ++中嵌套For循环

时间:2017-02-23 15:57:25

标签: c++

你好,我是一个相对较新的C ++程序员。我对我的代码有疑问

我有一个点2d类有一个双x和y。

我正在尝试以下嵌套循环:

Point2D Dec(float t)
{
    Point2D Temp;
    vector<Point2D>Bcopy=H->B;
    for(int p=0;p<Bcopy.size()-1;p++){
       for(int l=p;l<Bcopy.size();l++){
           Temp=(1-t)*Bcopy.at[p][l-1]+t*Bcopy.at[p+1][l-1];
       }
    }
    return Temp;
}

所以基本上有另一个类有一个带有点2d B的向量,而H是指向它的指针。这些是存储来自鼠标交互等的点并绘制它们。所以我刚创建了它的副本,然后做了上面的嵌套循环,然后我也使用这些点来绘制它们。

我不断收到以下两个错误:

std::vector<Point2D,std::allocator<-Ty>>::at':function call missing arguement list;use'&std::vector<Point2D,std::allocator<_Ty>>:at' to create a pointer to member

下标需要数组或指针。

这两个错误都适用于

Temp=(1-t)*Bcopy.at[p][l-1]+t*Bcopy.at[p+1][l-1]
代码中的

我尝试了很多不同的东西,我要么继续犯错,要么就是这两个错误。我试图谷歌并了解错误但不是真的。任何帮助将不胜感激

谢谢

修改的 经过多次游戏后

我做了以下事情:

vector<2D>NewBcopy; 
 double Rx=0 ,Ry=0; 
 for(int p=0;p<Bcopy.size()-1;p++){ 
 for(int l=p;l<Bcopy.size();l++){ 
 if(l==p)
 {Newcopy.at(l)=Bcopy.at(l); 
 }
 else 
 {Rx=(1-t)*Bcopy.at(p).x+t*Bcopy.at(p+1).x; 
 Ry=(1-t)*Bcopy.at(p).y+t*Bcopy.at(p+1]).y:
 }
 Temp.x=Rx;
 Temp.y=Ry;
 }
 }
 return Temp;
 }

0 个答案:

没有答案