|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||||||||||||||||||||||
Ошибка при использовании erase для std::vector21.12.2016, 10:28. Показов 6508. Ответов 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
|
||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 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> Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|