Chcę użyć okrągłej listy.Czy istnieje standardowa implementacja listy cyrkowej dla C++?
Krótko o wdrożeniu własnego (like this person did) Jakie są moje opcje?
W szczególności to, co chcę zrobić, to wykonać iterację na liście obiektów. Kiedy mój iterator dojdzie do końca listy, powinien automatycznie powrócić do początku. (Tak, zdaję sobie sprawę, że może to być niebezpieczne.)
See Vladimir's definition of a circular_iterator
: "Parametr circular_iterator nigdy nie będzie równy CircularList :: end(), dlatego zawsze możesz usunąć ten iterator."
Dzięki Naaff! Zmodyfikowanie indeksu wielkością wektora jest tak proste, jestem zawstydzony, że o tym nie myślałem. – Runcible
Jeśli upewnisz się, że rozmiar 'wektora' jest potęgą dwóch, to zamiast kosztownego narzutu operacji modułu użyj zamiast tego operatora bitowego' & ', ponieważ kosztuje on tylko jeden cykl. Działa to tak: '(n mod (2^k)) == (n & (2^k - 1))' np. 'n% 256 == (n & (255))' –