Я пытаюсь поменять два зЬй :: Список < dontcare *> :: итераторы под визуальным 2005станд :: своп возвращает 0xBAADF00D
Iter it1 = ... ,it2 = ...; // it1 and it2 are ok, not end() or such
if(...){
std::swap(it1,it2);
}
Своп работает, но когда я оставить, если() scope, it1 указывает на 0xbaadfood. It2 в порядке. Я попробовал несколько вариантов, включая swap_iter и ручной обмен.
Любая помощь приветствуется :)
EDIT
Ok, так что время стыдно.
Помененный it1 был локальной переменной в области if.
F ** король cut'n приклеивание. Извините за то, что вы тратили свое время:/
Не ешьте это. Это даст вам базуку sh! Ts. –
Я думаю, нам понадобится еще немного кода. –
Действительно ли вы меняете итераторы, которые определены вне области 'if', или вы обмениваетесь некоторыми итераторами, определенными внутри if? Определяется ли контейнер внутри 'if'? –