|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||||||||||||||||||||||
Ошибка при использовании erase для std::vector21.12.2016, 10:28. Показов 6094. Ответов 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> Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса
Калибровка параметров симбиотической модели: технический обзор
Содержание:
Введение
Постановка проблемы
Технические аспекты реализации
Процесс внедрения изменений
|
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0»
https:/ / ibb. co/ NnkGpfMd
Представленная интегрированная схема описывает непрерывную нелинейную. . .
|
|
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы
### Аннотация
Представлено исследование по разработке агентной модели микоризной. . .
|
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики
Контекст
Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
|
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии
Введение
Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
|
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np
class PlantAgent:
def __init__(self, name, strategy, initial_biomass):
self. name = name
self. strategy = strategy # "greedy" (широколиственные) или. . .
|