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;
} |
Partager