Что именно является «утверждать», или, более конкретно, как мне избавиться от ошибки. Когда я создаю вектор указателей на класс с элементом данных int x, а затем делаю это:
for(I=antiviral_data.begin();I<antiviral_data.end();I++)
{
if((*I)->x>maxx)
{
antiviral_data.erase(I);
}
}
И запускаю программу, я не получаю ошибок до тех пор, пока x не станет больше maxx, и я использую .erase (), после чего я получаю эту ошибку:
Ошибка отладочного подтверждения!
Программа: ... Мои документы \ O.exe Файл:
... include \ vector Линия: 116
Выражение:
( "Это -> _ Has_container ()", 0)
Для получения информации о том, как ваша программа
может привести к ошибке подтверждения, см.
документация по Visual C ++ по
утверждает.
(Нажмите «Повторить» для отладки приложения)
[Прервать] [Retry] [Ignore]
Также, если я попытаюсь использовать cout:
cout<<(*antiviral_data.begin())->x<<endl;
Я получаю эту ошибку:
Ошибка отладочного подтверждения!
Программа: ... Мои документы \ O.exe Файл:
... include \ vector Линия: 98
Выражение: векторный итератор не
deferencable
Для получения информации о том, как ваша программа
может привести к ошибке подтверждения, см.
документация по Visual C ++ по
утверждает.
(Нажмите Retry для отладки приложения)
[Прервать] [Retry] [Ignore]
Может кто-нибудь сказать мне, почему я не могу использовать какие-либо данные в векторе и как это исправить?
ТАКЖЕ: antiviral_data - это вектор указателей с одним элементом:
antiviral_data.push_back(new aX1(player.x,player.y,'>'));
Если это поможет.