Я пишу кросс-платформенный код между Windows и Mac.
Если list:: end() "возвращает итератор, который обращается к местоположению, следующему последнему элементу в списке" и может быть проверен при перемещении списка вперед, каков наилучший способ перемещения назад?
Этот код работает на Mac, но не в Windows (не может уменьшаться за пределами первого элемента):
list<DVFGfxObj*>::iterator iter = m_Objs.end();
for (iter--; iter!=m_Objs.end(); iter--)// By accident discovered that the iterator is circular ?
{
}
это работает в Windows:
list<DVFGfxObj*>::iterator iter = m_Objs.end();
do{
iter--;
} while (*iter != *m_Objs.begin());
Есть ли другой способ перемещения назад, который может быть реализован в цикле for?