có thể xem phần tử tiếp theo trong vùng chứa mà trình vòng lặp hiện trỏ đến mà không thay đổi trình lặp không?Peek phần tử tiếp theo trong hộp chứa STL
Ví dụ trong std :: set,
int myArray[]= {1,2,3,4};
set <int> mySet(myArray, myArray+4);
set <int>::iterator iter = mySet.begin();
//peek the next element in set without changing iterator.
mySet.erase(iter); //erase the element if next element is n+1
Tại sao không chỉ tạo một bản sao và thúc đẩy một trong những? Hãy chắc chắn rằng bạn kiểm tra xem một trong hai iterator là bằng '.end()' trước khi bạn tiếp tục! – GManNickG
Tôi nghĩ rằng tôi đã nhầm lẫn với iterator với một con trỏ. khi bạn gán một con trỏ cho con trỏ, cả hai sẽ thay đổi nếu một con trỏ thay đổi nhưng tại sao nó không xảy ra trong trường hợp của một trình lặp? – user963241
@GMan: Boost có các chức năng 'trước' và' tiếp theo' để thực hiện điều đó (nó lấy giá trị vòng lặp theo giá trị, do đó tạo một bản sao như bạn đã đề xuất). Xem http://www.boost.org/libs/utility/utility.htm để biết chi tiết. –