Eli miten tätä funktioota pitää muuttaa, että se vaihtaa olioiden paika taulukossa eikä vain niiden aikojen paikkoja?
EDIT: Siis lyhyesti, oliot pitäisi järjestää ajanmukaan järjestykseen, sillein, että pienin tulee ekaksi.
TEAM teams[TEAMS]; //Lajittelu funktio void selectionSort() { int min, pituus; pituus=TEAMS; for (int i = 0; i < pituus - 1; i++) { min = i; for (int j = i+1; j < pituus; j++) if (teams[j].GetTime() < teams[min].GetTime()) min = j; std::swap(teams[i], teams[min]); } }
Eihän se niitä aikoja mitenkään voi vaihtaa vaihtamatta koko olioita. Aivan oikein tuon pitäisi toimia. Mikä on ongelmana? Käsittänet kuitenkin, että esimerkiksi osoittimet ja taulun indeksit muualla ohjelmassa eivät muutu mitenkään:
TEAM *t_a = &teams[3]; selectionSort(); TEAM *t_l = &teams[3]; assert(t_a == t_l); // Osoitin osoittaa edelleen kohtaan &teams[3], vaikka siinä onkin nyt eri olio.
Örr... Etkö voisi käyttää vaikka listaa, johon pushaat tiimin aina kun luot sellaisen? Maailma on niin hieno paikka että ne pysyy itsestään jonkinlaisessa aikajärjestyksessä, ja listat taas niin hieno juttu että yksittäisen tiimin poistaminen onnistuu lennossa. Riippunee nyt tietty siitä miten toi GetTime() toimii.
Siis tuossa on sama määrä tiimejä aina, jotka vain pitää järjestää aikajärjestykseen tiedostoon... Sain sen tehtyä jo. :D
Aihe on jo aika vanha, joten et voi enää vastata siihen.