Salut 3DArchi !
VoilierEnCourse dérive bien de VoilierInscrit, mais ce n'est qu'un détail
.
Le vecteur contient des pointeurs vers les objets de type VoilierEnCourse, et j'y mets des new VoilierEnCourse.
Salut bruno_pages !
Je suis contraint d'utiliser une méthode "affiche" dans mon code:/,
Je ne suis pas à ce stade de compréhension du C++
, je me creuse la tête pour comprendre vos lignes.
Sinon, c'est ma classe Course qui contient le vecteur "LesVoilierEnCourse" (il contient bien des pointeurs vers la classe VoilierEnCourse):
vector<VoilierEnCourse*> lesVoiliersEnCourse;
A l'affichage tout est bon sauf l'ordre. Je me suis amusé à récupérer les valeurs des positions dans un vecteur<int> et à le trier, et là ça marche... mais bon je n'ai fait que trier des entiers quoi.
Voici mon horreur : (et encore merci infiniment de me donner de votre temps pour m'aider)
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| int Course::statutCourse()
{
// Tri des voiliers en course selon leur position.
// Ce vecteur contient la position de chaque voilier (ce sont des entiers)
vector<int> lesPositions;
// On récupère la position des voiliers dans ce vecteur //
for(int i= 0; i < this->lesVoiliersEnCourse.size(); i++)
{
lesPositions.push_back(this->lesVoiliersEnCourse[i]->getPositionX());
}
// On affiche ce qu'on a récupéré //
for(int i= 0; i < lesPositions.size(); i++)
{
cout << "Position : " << lesPositions[i] << endl;
}
cout << endl;
// On fait un sort des positions
std::sort(lesPositions.begin(), lesPositions.end());
// La ligne suivante ne semble pas marcher
std::sort(this->lesVoiliersEnCourse.begin(), this->lesVoiliersEnCourse.end(), comparaisonPosition);
// On affiche le vecteur lesPositions cette fois trié
cout << endl << "Trié " << endl;
for(int i= 0; i < lesPositions.size(); i++)
{
cout << "Position : " << lesPositions[i] << endl;
}
cout << endl;
// L'affichage indique bien qu'il y a eu un tri
//***************************************************************************//
cout<<"Statut actuel de la Course." << endl << endl;
for(int i=0; i < this->lesVoiliersEnCourse.size(); i++)
{
cout << "Numéro : " << this->lesVoiliersEnCourse[i]->getNumVoilierCourse() << endl;
cout << "Nom du voilier : "<< this->lesVoiliersEnCourse[i]->getNom() << endl;
cout << "- Position X : " << this->lesVoiliersEnCourse[i]->getPositionX() << endl;
cout << "- Classement : " << i+1;
// Si le vecteur est trié, son premier élément sera le voilier
// avec la position la plus proche de 0 (c'est pour ça que j'affiche la
// valeur de l'index comme étant le n° du classement (avec +1 pour ne
// pas commencer à 0))
cout << endl << endl;
}
return 0;
} |
Partager