Salut les djeuns,
j'ai une difficulté à surmonté. Je souhaite trier un vector<PointType> monVecteur par abscisse croissante ou decroissante, peu importe.
PointType est un type défini sous ITK ainsi typedef itk::Point<double,3> PointType;
- Peux t'on employer la fonction sort de std vector pour trier un vecteur à 3 dimension en fonction d'une des composantes?
- Qu'elle serait la façon la plus rapide de trier ce vecteur de points en fonction des abscisses.
- J'ai tenté de faire un tri bulle mais ça cloche. Je suis encore un novice en c++ donc probable que je m'y prenne mal au niveau des structures de données.
Le résultat ne me parait pas correcte non plus? Merci de m'apporter vos lumières
void echanger(vector<PointType> tableau, const int i, const int j)
{
int temporaire1,temporaire2,temporaire3;
temporaire1 = tableau[i][0];
temporaire2 = tableau[i][1];
temporaire3 = tableau[i][2];
tableau[i][0] = tableau[j][0];
tableau[i][1] = tableau[j][1];
tableau[i][2] = tableau[j][2];
tableau[j][0] = temporaire1;
tableau[j][1] = temporaire2;
tableau[j][2] = temporaire3;
}
void triABulle(vector<PointType> tableau,int longueur)
{
bool permutation;
do
{
permutation = false;
for(int i=0; i<longueur-1; i++)
{
if(tableau[i][0]>tableau[i+1][0])
{
echanger(tableau, i, i+1);
permutation = true;
}
}
longueur--;
}
while(permutation);
}