这段代码:
for (std::list<point>::const_iterator it = controlPoints->begin();
it != controlPoints->end();
++it) {
...
}
对应于:
for (int i = 0; i < controlPoints->size; i++) {
...
}
意思是,如果每次循环都得到一个元素,它将遍历列表的所有元素。
什么对应于:
for (int i = 0; i < controlPoints->size-1; i++) {
...
}
我的意思是,如何使用迭代器循环 size-1 次?
最佳答案
最明显的方法是让迭代器结束并递减它:
auto stop = controlPoints.end();
--stop;
for (std::list<point>::const_iterator it = controlPoints->begin();
it != stop;
++it) {
...
}
如果您愿意,可以使用 std::advance
或 std::next
,但对于这种情况,简单的递减就可以了。
关于c++ - 如何遍历列表但停在 size-1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38045040/