наступил на замечательные грабли |
Здравствуйте, гость ( Вход | Регистрация )
наступил на замечательные грабли |
Алексей1153 |
8.12.2012, 23:12
Сообщение
#1
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
из примера, думаю, понятно ))) Только у меня там хранились указатели, да не просто указатели, а на объекты, хранящиеся в QGraphicsScene. В итоге, сцена убивала объект в деструкторе, а я потом удалял из своего контейнера. Догадался о месте ошибки далеко не сразу ))))
Сообщение отредактировал Алексей1153 - 8.12.2012, 23:14 |
|
|
Iron Bug |
10.12.2012, 16:09
Сообщение
#2
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
тут не просто инкремент, а инкремент итератора. процедура, зависящая от состояния контейнера. и дело именно в том, что после удаления элемента итератор становится невалиден. нельзя инкрементировать итератор, когда элемент, на который он ссылался, удалён.
и компилятор тут ни при чём. тут нет оптимизации на уровне компилятора, ибо это далеко не атомарная операция. Сообщение отредактировал Iron Bug - 10.12.2012, 16:13 |
|
|
Текстовая версия | Сейчас: 29.11.2024, 3:05 |