所以,我正在开发一个检测点坐标的项目。为什么我会在“For”和“While”之间得到不同的结果?
我从std::vector<cv::Point> dots
中提取检测到的坐标,并将每个x和y坐标存储为std::vector<int> dotsX
和std::vector<int> dotsY
。 (我知道我可以用dots.x
或dots.y
代替,但是这不是我想要的)
每当我想打印输出,我得到一个for
环路和while
循环,显示值向量之间不同的结果。举一个例子:
检测到的X坐标是15,20,50和所检测的Y坐标是2,10,20
如果我使用for
循环:
for(int x=0;x < dotsX.size();x++)
{
std::cout << dotsX[x] << std::endl;
}
输出是一样的:15,20,50。
但是,如果我使用while
循环:
int x=0;
while(dotsX[x])
{
std::cout << dotsX[x] << std::endl;
x++;
}
输出是怪异:15,20,50,32总是有在它(一个额外的值等的值32,有时10201或4等)。
我不知道为什么会发生这种情况。
任何帮助将不胜感激。 谢谢
你'while'循环正在检查**值**。 'for'循环正在检查**数量**。两个截然不同的概念。 –