Mam obiekt, który chcę podróżować w pętli ciągłej w grze. Mam serię współrzędnych w std::vector
, które chcę użyć jako punktów nawigacyjnych.Najprostszy sposób na cykliczny iterator (cyrkulator)?
Czy istnieje sposób na wykonanie cyklicznego std::vector<T>::iterator
(zwanego również cyrkulatorem)?
Najlepsze, co mogę wymyślić, to mieć dwa iteratory, a potem, gdy pierwszy iterator zostanie wyczerpany, przypisz mu wartość drugiego (który nie byłby użyty do zrobienia czegokolwiek innego), ale nie jestem nawet pewien będzie działać - czy operator przydziału skopiuje to, czego używa iterator do przechowywania indeksu, czy też będzie się on jedynie odnosił (a zatem będzie bezużyteczny po drugiej rundzie)?
Chcę, aby obiekt przemieścił punkt orientacyjny na zawsze (chyba że zostanie zniszczony, ale nie nastąpi to w tej metodzie), ale iterator będzie wywoływany tylko raz dla każdej klatki i musi zostać zwrócony, aby można było zaktualizować drugi obiekty w grze.
Rozwiązanie musi działać na kompilatorze gcc i microsoft (jeśli nie można go zapisać w standardowym C++).
Napisałem taki iterator, więc jest to zdecydowanie możliwe =) Jedyne, co pamiętam, to to, że operator porównania
Z drugiej strony naprawdę potrzebujesz operatora ''? To trochę psotne, aby ukryć cykliczne zachowanie! –