![](/img/trans.png)
[英]My else block will not be executed when my if condition evaluates to false
[英]For loop - continue when condition evaluates to false
我使用 CLion 做功课。 这是我的代码和我遇到的奇怪错误,但我不知道为什么。 我希望有人能告诉我为什么以及如何解决它。
void findDownCorner(vector<vector<Point> >& squares, Point2f corners[]){
Point2f top_left=squares[0][0];
Point2f top_right=squares[0][0];
Point2f down_left=squares[0][0];
Point2f down_right=squares[0][0];
for(int i=0;i<squares.size();i++){
for(int k=0;k<squares[i].size();i++){
if(squares[i][k].x < top_left.x){
top_left=squares[i][k];
}
if(squares[i][k].y < top_right.y){
top_right=squares[i][k];
}
if(squares[i][k].y > down_left.y){
down_left=squares[i][k];
}
if(squares[i][k].x > down_right.x){
down_right=squares[i][k];
}
}
}
corners[0]=top_left;
corners[1]=top_right;
corners[2]=down_left;
corners[3]=down_right;
}
如您所见,正方形的大小为 8,但现在i
等于 8,并且循环并未停止。
更正您的 for 循环,如下所示。 最好使用括号来指示编译器应该首先执行哪个部分以避免副作用。
for(int i=0;i<(squares.size());i++){
for(int k=0;k<(squares[i].size());k++){
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.