Tôi có một đối tượng mà tôi muốn đi du lịch trong một vòng lặp liên tục trong một trò chơi. Tôi có một loạt tọa độ trong một số std::vector
mà tôi muốn sử dụng làm điểm tham chiếu.Cách dễ nhất để tạo một trình vòng lặp tuần hoàn (bộ tuần hoàn)?
Có cách nào để tạo std::vector<T>::iterator
tuần hoàn (còn được gọi là người lưu hành) không? Điều tốt nhất tôi có thể đưa ra là có hai vòng lặp và sau đó bất cứ khi nào trình vòng lặp đầu tiên bị kiệt sức gán cho nó giá trị của giá trị thứ hai (sẽ không được sử dụng để làm bất kỳ điều gì khác) nhưng tôi thậm chí không chắc chắn sẽ làm việc - liệu toán tử gán có sao chép bất cứ thứ gì mà trình vòng lặp đang sử dụng để giữ chỉ mục hay nó sẽ chỉ được tham chiếu (và do đó sẽ vô dụng sau vòng thứ hai)?
Tôi muốn đối tượng di chuyển điểm tham chiếu mãi mãi (trừ khi nó bị hủy nhưng điều đó không xảy ra trong phương thức đó), nhưng trình lặp sẽ chỉ được gọi một lần cho mỗi khung và phải quay lại để tôi có thể cập nhật các đối tượng trong trò chơi.
Giải pháp phải hoạt động trên trình biên dịch gcc và microsoft (nếu không thể viết nó theo chuẩn C++).
Tôi đã viết một trình lặp như vậy nên chắc chắn nó có thể =) Biến duy nhất tôi nhớ là toán tử so sánh
Mặt khác, bạn có thực sự cần 'toán tử <'? Đó là một chút tinh nghịch để ẩn hành vi cyclic! –