Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Tarkistetaan onko mapissa jo ennestään nykyinen avainkaupunki.
- ulkoiter = kaupunkidata.find(avainkaupunki);
- // Skenaario 1: Avainkaupunkia ei ole vielä olemassa, joten
- // tehdään kokonaan uusi tietoalkio.
- if (ulkoiter == kaupunkidata.end()) {
- // Sijoitetaan kohdekaupunki ja välimatka tietoparina sisämappiin,
- // joka vastaavasti sijoitetaan avaimen kanssa ulkomappiin.
- kohdedata.clear();
- kohdedata.insert(make_pair(kohdekaupunki, valimatka));
- kaupunkidata.insert(make_pair(avainkaupunki, kohdedata));
- // Tämän jälkeen täytyy huomioida, että mappihässäkkä vaatii myös
- // vastaavan tietoparin niin, että kohteesta tulee avain ja
- // avaimesta kohde. Tarvitaan siis vastasijoitus.
- kohdedata.clear();
- kohdedata.insert(make_pair(avainkaupunki, valimatka));
- kaupunkidata.insert(make_pair(kohdekaupunki, kohdedata));
- cout << "---Vastasijoitus, avainta ei löytynyt---" << endl;
- cout << endl;
- // Nyt meillä pitäisi olla rakenteessa näin:
- // Avain
- // Kohde Välimatka
- // Kohde
- // Avain Välimatka
- }
- // Skenaario 2.1: Avain on, kohde on. Aiheutuu virhe.
- else if ( (*ulkoiter).second.find(kohdekaupunki) !=
- (*ulkoiter).second.end() ) {
- return KAUPUNKIPARI_2X;
- }
- // Skenaario 2.2: Avain on, kohdetta ei.
- else if (ulkoiter != kaupunkidata.end()) {
- kohdedata.clear();
- (*ulkoiter).second.insert(make_pair(kohdekaupunki, valimatka));
- // Skenaariota 1 vastaavasti tarvitaan myös vastasijoitus.
- // Etsitään kohdetta avainten joukosta.
- ulkoiter = kaupunkidata.find(kohdekaupunki);
- // Mikäli ei löytynyt, niin tehdään uusi pari.
- if (ulkoiter == kaupunkidata.end()) {
- kohdedata.clear();
- kohdedata.insert(make_pair(avainkaupunki, valimatka));
- kaupunkidata.insert(make_pair(kohdekaupunki, kohdedata));
- cout << "---Vastasijoitus, avain on, kohdetta ei---" << endl;
- cout << endl;
- }
- // Mikäli löytyy, niin lisätään vain avainkaupunki kohteeksi.
- else if (ulkoiter != kaupunkidata.end()) {
- kohdedata.clear();
- (*ulkoiter).second.insert(make_pair(kohdekaupunki,
- valimatka));
- cout << "---Vastasijoitus, avain on, kohde on---" << endl;
- cout << endl;
- }
- }
Add Comment
Please, Sign In to add comment