![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
AD |
![]()
Сообщение
#1
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Вот тестовый код:
Интересен он следующим. Если заменить первый элемент на неудаляемый (например push_back(1)), то программа нормально выполняется. Если же тестировать указанную версию, то варианты - разные. На моей машине с Ubuntu g++ 4.6.1 он падает. На машине другого форумчанина он тоже падает, как в MSVC, так и в g++ 4.7.1, а вот у третьего форумчанина с g++ 4.6.3 этот код не падает. Что же это? Сразу говорю, что берется старый стандарт, т.е. не 2011. Понятно, что невалидный итератор, но почему же тогда иногда работает? |
|
|
![]() |
Алексей1153 |
![]()
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
спокойнее ) Всё важно. Я же не для того, чтобы поспорить, а ради истины ))
Цитата Какие дополнительные задачи решаются от этого как раз надо плясать. Ну а когда чисто абстрактная задача - она решается ровно одной строкой (цикл там есть, загляни в исходники) Цитата Операции добавления и удаления самые важные в данной задаче, потому и используется список. и это не аргумент для выбора списка. Ты не сказал КАК и ЧТО ты добавляешь и удаляешь. Если всё остаётся на уровне школьной задачки, то считаем задачу решённой, ок. |
|
|
AD |
![]()
Сообщение
#3
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
спокойнее ) Всё важно. Я же не для того, чтобы поспорить, а ради истины )) Ее в принципе не существует, потому и, получается, что спор ради спора. Любую задачу можно решить множеством способов. Понятное дело, что не всегда принимается оптимальный вариант, но есть куча побочных факторов, не относящихся прямо к задаче, которые влияют на выбор решения. В данном случае, приводится очевидный кусок кода слегка в упрощенном варианте. Цикл сделан не случайно, так как в реальной задаче сравнение на удаляемый элемент не такое простое, требующее знать отдельные части структуры, которая является элементом списка (конечно же, там не список простых чисел! ![]() |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 17.7.2025, 17:34 |