Murdocki
Gebruiker
- Lid geworden
- 7 jun 2007
- Berichten
- 449
hallo
ik probeer een vector bij te houden die kan veranderen terwijl er doorheen geitereerd wordt dit doe ik zo:
echter nu als ik 66 (weet niet of dit precies uitmaakt) entities toe voeg dan krijg ik een error bij pos++. dit is een fatal error. er staat line 163 + 0xf bytes in de laatst aangeroepen code in visual studio debugger. het rare is dat de debugger de waarde van pos(adres) niet weer kan geven en hij zegt dat end naar 0xfeeefeee wijst, terwijl dit helemaal niet het einde is van de vector volgens mij. ziet iemand wat ik fout doe?
ps: het toevoegen en verwijderen lukt gewoon totdat ik een groot aantal ineens toevoeg
ik probeer een vector bij te houden die kan veranderen terwijl er doorheen geitereerd wordt dit doe ik zo:
Code:
void UpdatableEntityData::update()
{
std::vector< UpdatableEntity* > updatedEntities;
std::vector< UpdatableEntity* >::iterator pos = updatableEntities.begin(), end = updatableEntities.end();
while( pos != end )
{
if( end != updatableEntities.end() )
{
end = updatableEntities.end();
std::vector< UpdatableEntity* >::iterator tempPos = end - 1, tempBegin = updatableEntities.begin();
while( (*tempPos) != *(updatedEntities.end() - 1) )
{
if( tempPos == tempBegin )
break;
else
tempPos--;
}
if( tempPos == tempBegin )
{
if( (*tempPos) == *( updatedEntities.end() - 1 ) )
pos = end;
else
pos = tempPos;
}
else
pos = tempPos + 1;
}
if( pos == end )
break;
else
{
updatedEntities.push_back( (*pos) );
(*pos)->update();
pos++;
}
}
}
echter nu als ik 66 (weet niet of dit precies uitmaakt) entities toe voeg dan krijg ik een error bij pos++. dit is een fatal error. er staat line 163 + 0xf bytes in de laatst aangeroepen code in visual studio debugger. het rare is dat de debugger de waarde van pos(adres) niet weer kan geven en hij zegt dat end naar 0xfeeefeee wijst, terwijl dit helemaal niet het einde is van de vector volgens mij. ziet iemand wat ik fout doe?
ps: het toevoegen en verwijderen lukt gewoon totdat ik een groot aantal ineens toevoeg