[英]limit vector.size() in a for loop
我试图在由Vec3f组成的向量中执行此操作:
for (size_t i = 0; i < (mPoints.size() - 10) ; i++) {
glVertex3f(mPoints[i]);
}
但我总是得到运行时错误EXC_BAD_ACCESS ...如果不是size()我使用int我得到相同的错误。 如果相反我只使用size()而没有减法,它工作得很好......
这是怎么回事?
听起来你可能遇到的问题是向量中的元素少于10个。 因此,当你从无符号值中减去10时,实现可能会回滚并给你一个非常大的数字(基本上是max - 10)。 因此,您尝试迭代超过向量的边界。
请尝试以下方法
for (size_t i = 0; i + 10 < vector.size(); i++) {
glVertex3f(mPoints[i]);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.