Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Olioiden uudelleen järjestys[C++]

vehkis91 [15.11.2008 15:50:54]

#

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]);
  }
}

Metabolix [15.11.2008 16:38:15]

#

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.

Deffi [15.11.2008 17:52:28]

#

Ö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.

vehkis91 [17.11.2008 11:26:56]

#

Siis tuossa on sama määrä tiimejä aina, jotka vain pitää järjestää aikajärjestykseen tiedostoon... Sain sen tehtyä jo. :D

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta