Есть список(чисто пример, на самом деле там структуры)Код | std::list<int> my_list; |
Далее, происходит следующееКод | typedef std::list<int>::iterator iter; iter begin = my_list.begin(); iter end = my_list.end(); for (; begin != end; ++begin) { if (*begin == 123) { // просто ради примера ++begin; // переходим на следующий елемент if (begin != end) { // если не конец if (*begin == 456) { // опять же просто пример --begin; // возвращаемся назад do_something(*begin); // работаем с елементом ++begin; // идем опять на 1 вперед } } --begin; // что-бы не произошло, мы возвращаемся на элемент с которого начинали эту итерацию } } |
СмущаютЦитата(code) | ++begin --begin |
Пока я захожу вперед на 1 елемент(попутно проверив не конец ли это) и потом перехожу обратно на предыдущий, все вроде нормально. Но если понадобится зайти на 2, 3, 5, 10 елементов вперед/назад, то будет очень некрасиво писать такЦитата | ++begin ++begin ++begin ++begin ... --begin --begin --begin --begin |
|