Ich habe ein Programm erstellt, und es verwendet die vector.h # include, und Iteratoren, etc ... Aber wenn ich das Programm unter bestimmten Umständen (ich versuche immer noch herauszufinden, was das wäre) Ich bekomme einen Assertion-Fehler, der mich auf Zeile 98 von vector.h verweist. Ich ging 98 von vector.h Linie und bekam dies:Was bedeutet dieser Code in "Vektor"? (C++)
#if _HAS_ITERATOR_DEBUGGING
if (this->_Mycont == 0
|| _Myptr < ((_Myvec *)this->_Mycont)->_Myfirst
|| ((_Myvec *)this->_Mycont)->_Mylast <= _Myptr)
{
_DEBUG_ERROR("vector iterator not dereferencable");
_SCL_SECURE_OUT_OF_RANGE;
}
Kann jemand bitte sagen Sie mir, was das bedeutet und was in meinem Programm verursacht diese Behauptung?
NB: Linie 98, für die Aufzeichnung, ist derjenige, der „_DEBUG_ERROR (“ vect ...“
NB beginnt: Dies ist der Code in meinem Programm, das ich ausgelöst, um den Fehler GLAUBEN, ich bin wenn auch nicht ganz sicher,
Code:..
for(aI = antiviral_data.begin(); aI < antiviral_data.end();)
{
for(vI = viral_data.begin(); vI < viral_data.end();)
{
if((*aI)->x == (*vI)->x && (*aI)->y == (*vI)->y)
{
vI = viral_data.erase(vI);
aI = antiviral_data.erase(aI);
}
else
{
vI++;
}
}
if((*aI)->x >= maxx || (*aI)->x < 0 || (*aI)->y >= maxy || (*aI)->y < 0)
{
aI = antiviral_data.erase(aI);
}
else
{
aI++;
}
}
Es sollte nur #include sein, nicht vector.h, btw. –
GManNickG