Suppression dans un std::vector
Bonjour, je voudrai supprimer des Points dans une Grille formé de Points...
En gros, c'est comme si je voudrai supprimer des entiers dans un vector !
Je crois qu'il faut utiliser des iterator mais quand je fais ceci cela compile mais cela mais des erreurs à l'execution.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
int IGrille::supprimePointDejaOptimise(IGrille* grillePrecedente)
//
// Suppression des points de la Grille déjà calculés (eviter calculs redondants)
//
{
int noPoint,noPointPrecedente;
IParetoPoint* pointGrille,* pointGrillePrecedente;
std::vector< IParetoPoint* >::iterator iter;
std::vector< int > aSupprimer;
for(noPointPrecedente=0;noPointPrecedente<grillePrecedente->getSize();noPointPrecedente++)
{
pointGrillePrecedente = (grillePrecedente->getGrille())[noPointPrecedente];
for (noPoint = 0; noPoint != (int)_grille.size(); noPoint++)
{
pointGrille = _grille[noPoint];
if(pointGrille->egale(pointGrillePrecedente)) {// point déjà optimisé
printf("+++++++++ point numero %d a supprimer \n",noPoint);
aSupprimer.push_back(noPoint);
}
}
}
for (noPoint = 0; noPoint != (int)aSupprimer.size(); noPoint++)
{
iter = (std::vector< IParetoPoint* >::iterator) _grille.begin()+aSupprimer[noPoint];
_grille.erase(iter);// suppression du point
}
return 0;
} |
Je vous remercie d'avance pour votre aide...
:yaisse2: