|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||||||||||||||||||||||
Ошибка при использовании erase для std::vector21.12.2016, 10:28. Показов 6164. Ответов 55
Метки нет (Все метки)
Почему в случае удаления элемента из вектора с помощью передачи итератора в erase, который соответствует позиции удаляемого элемента возникает ошибка(сегфолт)?
Но при этом с той же позиции итератора которая приводит к сегфолту при удалении, получается вывести значение Т.е при очистки элемента получаем сегфолт, а при выводе значения адрес каким то образом оказывается валидным и значение выводится успешно
Добавлено через 11 минут Вот, может так будет нагляднее
0
|
||||||||||||||||||||||
| 21.12.2016, 10:28 | |
|
Ответы с готовыми решениями:
55
std::vector::erase
Ошибка “vector<bool> erase iterator outside range” при работе алгоритма Хаффмана |
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
| 23.12.2016, 10:42 | |
|
Не знаю, мне кажется, что при изучении программирования надо сначала язык освоить, потом проектирование, а уже потом постигать тонкости оптимизации.
Автор же пока язык не очень освоил, и от его темы попахивает дурно спроектированной программой, но с ним как с большим все о тонкостях оптимизации дискутируют!
0
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|||
| 23.12.2016, 10:58 [ТС] | |||
0
|
|||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|||
| 23.12.2016, 11:12 | |||
|
Поэтому человек, не умеющий обращаться со стандартными контейнерами, языка таки не знает. Мне же, например, после десятка выших сообщений не только не понятно что вам нужно, но с каждым вашим сообщением становится все непонятнее.
0
|
|||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|||
| 23.12.2016, 11:21 [ТС] | |||
![]() Даже замечал что опытные программисты часто обходят STL стороной из за его неэффективности для их задач(в некоторых случаях) Может способ изложения вам не ясен Но это вовсе не значит что данная реализация плохая
0
|
|||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|||
| 23.12.2016, 11:39 | |||
Ну, сейчас-то она есть, и основная часть языка таки в ней содержится!Кстати, Степанов (создатель STL) считает, что главное в программе - это алгоритмы, а не данные, и он писал STL именно ради создания обобщенных алгоритмов. Поэтому знать STL, а следовательно C++, - это означает знать стандартные алгоритмы и уметь ими пользоваться. А то иногда забавно бывает видеть как человек, изучив только контейнеры, начинает их циклами мучить. Поэтому мне кажется, что ваш вопрос в теме логичнее было бы так сформулировать: мне в моем проекте привиделся вот такой жуткий контейнер. Помогите спроектировать по-человечески!
0
|
|||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||||
| 23.12.2016, 11:45 [ТС] | ||||
|
Просто не хочу флудить в теме дабы не отходить от основной проблемы Но если детально опишу ситуацию где это нужно и попытаюсь объяснить по другому(что бы и вы поняли) необходимую реализацию думаю вы меня поймете и скорее всего согласитесь
0
|
||||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 23.12.2016, 15:29 | ||
Сообщение было отмечено Undisputed как решение
Решение
Ссылку я тебе дал, что бы ты прочитал и сам проанализировал подойдет ли хеш-таблица под твои требования или нет. Ты должен понять, что лучше всего, когда это будет сделано тобой, чем кем-то еще (даже если он лучше разбирается), потому что в конечном счете личный опыт - бесценен.
Сейчас ты потихонечку приходишь к мысли о взаимоисключающих параграфах. О том, что можно компенсировать скорость доступа через дополнительную память, или о том, что в условиях ограниченной памяти идеальную скорость доступа не всегда возможно обеспечить. Это как раз то, о чем я говорил, когда писал про "все бесплатно". В том смысле, что довольно часто нам приходится за что-то платить либо скоростью, либо памятью, либо и тем и другим, для достижения условно-идеального решения для нашей ситуации. А идеальное решение во всех отношениях возможно только в очень узких случаях, да и то не всегда. Поэтому лично мне представляется, что в условиях фиксированной памяти для общего случая будет сложно обеспечить скорость поиска лучшую, чем O(log(N)), что в большинстве случаев довольно неплохо. Все более скоростные решения требуют дополнительных затрат на выделение памяти. Кстати вот есть такая иллюстрация к совету 23 из книги Мейерса, это к вопросу о сортированных векторах. И все-таки, ругать тебя за бег впереди паровоза я, конечно, не буду, но хочу донести одну мысль еще раз: чтобы сделать хорошее решение, которое будет близко к идеальному, нужно представлять спектр возможных подходов к решению задачи. В "скучных" книгах по алгоритмам дается эта база. Я не очень представляю как можно писать реализацию хеш-таблицы, или сколь-нибудь эффективную реализацию аллокатора без этих знаний. Начни читать хотя бы Седжвика, он гораздо легче дается, и код предполагается на С++. Без алгоритмической базы ничего хорошего реализовать у тебя, к сожалению, не получится.
6
|
||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||||
| 23.12.2016, 17:05 [ТС] | ||||
|
И реализация будет проще, можно тупо создать массив нужного типа с заведомо большим размером. А дальше насколько я понимаю что бы добраться до нужного индекса потребуется время на "указатель на начало массива + индекс" - это вроде константная сложность Но все же мне лично материал легче дается из обсуждений нежели из чтения простыни текста Но все же стараюсь читать книги... Хотя в последнее время мало. Читал как то Страуструпа... надолго запомнилДобавлено через 10 секунд Спасибо! Добавлено через 5 минут
0
|
||||
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
| 23.12.2016, 18:36 | |
Сообщение было отмечено Undisputed как решение
Решение
2
|
|
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||
| 23.12.2016, 18:46 | ||
|
Конечно, стоит рассматривать эту схему лишь как приближенную шпаргалку.
Например - хранить строки лучше в map, нежели unordered_map т.к. для хеш-функции понадобится пройтись по всей строке, в то время, как бинарное дерево может определить место элемента, не проходя до конца, используя лексикографическое сравнение. Чтобы лучше понять контейнеры - нужно прочитать теорию и подкрепить это хорошей практикой. Идеально было бы попытаться реализовать их, хотя бы на примитивном уровне, но с соблюдением требований O-нотации на добавление/поиск/удаление. Добавлено через 2 минуты Советую потом ещё Майерса, Эффективное использование STL.
1
|
||
| 23.12.2016, 19:26 | |
|
0
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||
| 24.12.2016, 00:11 [ТС] | ||
|
MrGluck,
Отличная картинка! Большое спасибо! А то держать этот кошмар в голове это... Mr.X, Никто ни на кого не влияет. Тут просто обсуждения. Вопросы, ответы и советы. Зачем такое писать? Вам жалко что ли когда мне помогают? От вас же ничего не уходит Добавлено через 10 минут Форум на то и форум Книге и статье вопросы не задашь и ничего с ними не обсудишь
0
|
||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 24.12.2016, 10:25 | ||
Ну, это таки юмор был, и исключительно по поводу правописания слова "чтобы". Хотелось бы, чтобы в процессе этой помощи вы становились грамотнее, а тут как-то наоборот получилось!
0
|
||
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
| 29.12.2016, 00:51 | |
|
4
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 30.12.2016, 20:40 [ТС] | |
|
MrGluck,
Супер! Спасибо!
0
|
|
| 30.12.2016, 20:40 | |
|
Ошибка: Out of range при использовании <vector> Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет)
Содержание проекта
Симуляция вековой (50 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов
Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
|
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация
В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
|