gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 20:00:14 25 4
gpt4 key购买 nike

我正在尝试在由 Vec3f 组成的 vector 中执行此操作:

for (size_t i = 0; i < (mPoints.size() - 10) ; i++) {
glVertex3f(mPoints[i]);
}

但我总是遇到运行时错误 EXC_BAD_ACCESS ... 如果我使用 int 而不是 size(),我也会遇到同样的错误。相反,如果我只是简单地使用 size() 而不做减法,它工作正常......

这是怎么回事?

最佳答案

听起来您可能遇到了 vector 中的元素少于 10 个的问题。因此,当您从无符号值中减去 10 时,实现可能会环绕并为您提供一个非常大的数字(基本上是 max - 10)。因此,您尝试迭代越过 vector 的边界。

试试下面的方法

for (size_t i = 0; i + 10 < vector.size(); i++) {
glVertex3f(mPoints[i]);
}

关于c++ - 在 for 循环中限制 vector.size(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8028567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com