BART1234567
Nieuwe gebruiker
- Lid geworden
- 8 dec 2008
- Berichten
- 4
Ik probeer al enkele dagen de std::vector aan de praat te krijgen maar krijg constant segmentationfaults bij het verwijderen...
Dit is de sourcecode:
Na toevoeging van enkele cout berichten blijkt het dat de ene keer er onmiddelijk een segmentationfault optreedt, de andere keer pas na verwijderen van, pakweg, 3 objecten in de vector.
Waar zit de fout?
Dit is de sourcecode:
Code:
// Ergens in de code heb ik een vector v1 waaraan ik enkele objecten van type Test aan meegeef. Dit werkt allemaal goed.
// De Test class heeft 2 members m1 en m2 die tezamen een "gewicht" voorstellen (het gewicht = m1 * m2).
// Nu probeer ik een nieuwe vector aan te maken waarbij het gewicht van de objecten in v1 gesorteerd is volgens oplopende grootte.
vector<Test*> v2;
int size = v1.size();
for(int i = 0; i < size; i++)
{
Test* smallest = v1[0];
int max = v1.size();
int loc = 0;
for(int j = 0; j < max; j++)
{
double w1 = smallest->m1 * smallest->m2;
double w2 = v1[j]->m1 * v1[j]->m2;
if (dl2 < dl1)
{
smallest = v1[j];
loc = j;
}
}
v2[i] = smallest;
v1.erase(v1.begin() + loc);
}
// v2 bevat nu alle objecten van v1, gesorteerd volgens hun gewicht?
Na toevoeging van enkele cout berichten blijkt het dat de ene keer er onmiddelijk een segmentationfault optreedt, de andere keer pas na verwijderen van, pakweg, 3 objecten in de vector.
Waar zit de fout?