gpt4 book ai didi

c++ - 在 C++ 中使用迭代器时如何获取循环数?

转载 作者:太空狗 更新时间:2023-10-29 23:31:40 25 4
gpt4 key购买 nike

我正在开发一个应用程序,我在其中绘制了一些图像,如下所示:

void TimeSlice::draw(float fX, float fY) {
list<TimeSliceLevel*>::iterator it = levels.begin();
float level_x = x;
float level_y = y;
while(it != levels.end()) {
(*it)->draw(level_x,level_y);
level_y += (*it)->height;
++it;
}

虽然这有点不正确。我需要将 TimeSliceLevel* 定位在 X 上。当我得到一个for(int i = 0; i < slices.size(); ++i)循环,我可以使用 x = i * width .虽然我使用的是迭代器,因为我多次被告知这是一个很好的编程 :> 我想知道迭代器是否有一个“索引”号,我可以用它来计算新的 X 位置? (所以更多的是关于使用迭代器的问题)

亲切的问候,北河三

最佳答案

它们不会,因为除了从头到尾循环有序的索引列表之外,迭代器还可以用于其他目的。您需要单独跟踪索引并在每次通过时递增它:

list<TimeSliceLevel*>::iterator it;
int index;

for(it = levels.begin(), index = 0; it != levels.end(); ++it, ++index) {
...
}

关于c++ - 在 C++ 中使用迭代器时如何获取循环数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3029637/

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