你好,我是一个相对较新的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;
}