Каков правильный способ удаления содержимого списка. В настоящее время я это делаю.Удаление списков в C++ вызывает сбой
std::list<CSchSuggestBar*>::const_iterator iter = m_pRescheduleReasons.begin();
for (; iter != m_pRescheduleReasons.end(); ++iter)
{
delete *iter;
}
однако удаление * iter, похоже, вызывает сбой.
Это предпочтительнее, если я просто позвонить m_pRescheduleReasons.clear()
редактировать:
Путь Как указатели хранятся в списке, как выглядит следующим образом: (я сделал отдельный проект, чтобы изолировать проблему: когда удаляемый называется в первый раз появляется авария .. однако есть действительный объект, в котором указатель указывает слишком Так им не слишком уверен, почему он врежется
std::vector<Foo*> f;
for(int i = 0; i < 10; i++)
{
f.push_back(f1);
}
std::vector<Foo*>::const_iterator it = f.begin();
for (; it != f.end(); ++it)
{
delete *it;
}
EDIT:? я решил это была глупая ошибка от моего имени
Что на самом деле указывают указатели в списке? Как добавить элементы в список? * Что * вы добавляете в список? –
Вы ищете его? –
Я нашел так много хороших предложений от googling «delete list in C++» –