Tôi muốn sử dụng danh sách vòng tròn.Việc triển khai chuẩn của Danh sách Thông tư có tồn tại cho C++ không?
Thiếu triển khai của riêng tôi (like this person did) các tùy chọn của tôi là gì?
Cụ thể những gì tôi muốn làm là lặp qua danh sách đối tượng. Khi trình vòng lặp của tôi đến cuối danh sách, nó sẽ tự động trở lại đầu. (Có, tôi nhận ra điều này có thể nguy hiểm.)
See Vladimir's definition of a circular_iterator
: "Trình thông tư tròn sẽ không bao giờ bằng với CircularList :: end(), do đó bạn luôn có thể bỏ qua bộ lặp này."
Cảm ơn Naaff! Modding chỉ số với kích thước của vector là một giải pháp đơn giản, tôi xấu hổ vì tôi không nghĩ về nó. – Runcible
Nếu bạn đảm bảo rằng kích thước của 'vectơ' là một lũy thừa của hai, sau đó thay vì chi phí đắt tiền của hoạt động mô đun, hãy sử dụng toán tử' & 'thay vì nó chỉ tốn một chu kỳ. Nó hoạt động như thế này: '(n mod (2^k)) == (n & (2^k - 1))' ví dụ 'n% 256 == (n & (255))' –