Что такое «assert», а точнее, как избавиться от ошибки. Когда я создаю вектор указателей на класс с элементом данных 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
Выражение: ("this -> _ Has_container ()", 0)
Для получения информации о том, как ваша программа может вызвать сбой утверждения, см. Документацию Visual C ++ по утверждениям.
(Нажмите "Повторить", чтобы отладить приложение)
[Прервать] [Повторить] [Игнорировать]
Кроме того, если я попытаюсь использовать cout:
cout<<(*antiviral_data.begin())->x<<endl;
Я получаю такую ошибку:
Ошибка отладки!
Программа: ... Мои документы \ O.exe Файл: ... include \ vector Строка: 98
Выражение: векторный итератор не распознается
Для получения информации о том, как ваша программа может вызвать сбой утверждения, см. Документацию Visual C ++ по утверждениям.
(Нажмите "Повторить", чтобы отладить приложение)
[Прервать] [Повторить] [Игнорировать]
Не мог бы кто-нибудь сказать мне, почему я не могу ИСПОЛЬЗОВАТЬ какие-либо данные в векторе и как это исправить?
ТАКЖЕ: antiviral_data - это вектор указателей с одним элементом:
antiviral_data.push_back(new aX1(player.x,player.y,'>'));
Если это поможет.