繁体   English   中英

在for循环中限制vector.size()

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM