Ho un oggetto che voglio viaggiare in un ciclo continuo in un gioco. Ho una serie di coordinate in un std::vector
che voglio usare come waypoint.Il modo più semplice per realizzare un iteratore ciclico (circolatore)?
Esiste un modo per creare un ciclo std::vector<T>::iterator
(noto anche come circolatore)?
Il meglio che posso venire è avere due iteratori e poi ogni volta che il primo iteratore è esaurito assegnargli il valore del secondo (che non sarebbe usato per fare altro) ma non sono nemmeno sicuro che sia funzionerà - l'operatore incaricato copia ciò che l'iteratore sta usando per tenere l'indice o sarà semplicemente referenziato (e quindi sarà inutile dopo il secondo turno)?
Desidero che l'oggetto percorra il waypoint per sempre (a meno che non venga distrutto ma ciò non accade in tale metodo), ma l'iteratore verrà chiamato una sola volta per ogni frame e deve essere restituito in modo da poter aggiornare l'altro oggetti nel gioco.
La soluzione deve funzionare su gcc e microsoft compiler (se non è possibile scriverlo in C++ standard).
Ho scritto un iteratore del genere quindi è assolutamente possibile =) L'unica cosa che ricordo è che l'operatore di confronto
D'altra parte, hai davvero bisogno di 'operatore <'? È un po 'malizioso nascondere il comportamento ciclico! –