Harjoitukset viikkoharjoitussessioon 8

Tehtävä 1

Tässä harjoituksessa sinulle annetaan vektori places, jonka alkiot ovat tyyppiä struct Place{ int x; int y; string name; }. Tehtävänäsi on mukauttaa saatavilla olevia STL-algoritmeja suorittamaan seuraavat toiminnot:

  1. Järjestä vektorin places alkiot seuraavien kriteerien mukaisesti:
    • ensin nousevaan järjestykseen x-koordinaatin perusteella,
    • sitten nousevaan järjestykseen y-koordinaatin perusteella, jos kahdella alkiolla on samat x-koordinaatit,
    • ja lopuksi sanakirjajärjestykseen nimen perusteella, jos sekä x- että y-koordinaatit ovat samat.
  2. Järjestä vektorin places alkiot seuraavien kriteerien mukaisesti:
    • ensin niiden etäisyyden perusteella origosta {0,0} nousevaan järjestykseen
    • ja sitten sanakirjajärjestykseen nimen perusteella, jos etäisyydet origosta ovat samat.
  3. Luo uusi vektori nearby1, joka sisältää kaikki ne alkiot, joiden etäisyys origosta on välillä 10 ja 20.
  4. Luo uusi vektori nearby1, joka sisältää kaikki ne alkiot, joiden etäisyys origosta on välillä low ja high, missä low ja high ovat käyttäjän antamia parametreja.
  5. Poista ne alkiot vektorista places, jotka sisältävät merkkijonon “Unlisted” nimessään tai joiden x- tai y-koordinaatti on alle 1.

Bonus: Kuinka monta vertailua tehdään järjestämiseen kohdissa a ja b?