我的工作,我画了几个图像,像这样的aplication:如何在C++中使用迭代器时获得循环次数?
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位置的“索引”数量? (因此,它更是一个有关使用迭代器的问题)
亲切的问候, 北河三
对于除std :: vector或数组以外的所有情况,这是非常低效的。在任何情况下,索引可以像下面这样计算:std :: size_t index = std :: distance(levels.begin(),it); – Hippicoder 2010-06-13 07:44:07