Windows ile Mac arasında bazı platformlar arası kod yazıyorum.Bir STL listesinden geriye doğru nasıl yineliyorsunuz?
Eğer liste :: end() "bir listedeki son elemanın yerini belirleyen bir adrese tekrarlayan bir yineleyici döndürür" ve bir listeyi geçerken kontrol edilebilir, geriye doğru hareket etmenin en iyi yolu nedir?
list<DVFGfxObj*>::iterator iter = m_Objs.end();
for (iter--; iter!=m_Objs.end(); iter--)// By accident discovered that the iterator is circular ?
{
}
bu Windows üzerinde çalışır:
list<DVFGfxObj*>::iterator iter = m_Objs.end();
do{
iter--;
} while (*iter != *m_Objs.begin());
o geriye çapraz başka bir yolu var mı
Bu kod (ilk elemanın ötesine azaltma olamaz) Windows üzerinde Mac ancak workson for döngüsünde uygulanabilir mi?
Yalnızca ilk örneğinizin (dairesel yineleyici, bitiş() ile karşılaştırarak çalışacağı) bir uygulama kazası olurdu. – Justsalt