Je souhaite utiliser une liste circulaire.Existe-t-il une implémentation standard d'une liste circulaire pour C++?
À court d'implémenter le mien (like this person did) quelles sont mes options?
Plus précisément, ce que je veux faire est de parcourir une liste d'objets. Lorsque mon itérateur atteint la fin de la liste, il devrait automatiquement revenir au début. (Oui, je réalise que cela pourrait être dangereux.)
See Vladimir's definition of a circular_iterator
: "Un élément circulaire ne sera jamais égal à CircularList :: end(), donc vous pouvez toujours déréférencer cet itérateur."
Merci Naaff! Modding l'index avec la taille du vecteur est une solution si simple, je suis gêné je n'y ai pas pensé. – Runcible
Si vous vous assurez que la taille de votre 'vecteur' est une puissance de deux, alors au lieu de l'overhead coûteux de l'opération de module, utilisez l'opérateur bit &' à la place car il ne coûte qu'un cycle. Cela fonctionne comme ceci: '(n mod (2^k)) == (n & (2^k - 1))' p. 'n% 256 == (n & (255))' –