#include <iostream.h>
#include <string.h>
#include <vector.h>
#include "Luoghi.h"
using namespace std;
class TestItinerario
{
public:
int TestItinerario1();
int TestItinerario2();
int TestItinerario3();
int TestItinerario4();
void Esegui ()
{
cout << "Inizio Test" << endl;
TestItinerario1();
TestItinerario2();
TestItinerario3();
cout << "Fine test" << endl;
};
};
class Itinerario
{
public:
std::string nome;
std::vector<Luogo> luoghi;
Itinerario(string nome)
{
this->nome = nome;
}
void Add(double latitudine, double longitudine)
{
luoghi.push_back(Luogo(latitudine, longitudine));
}
};
class ContenitoreItinerari
{
public:
vector<Itinerario> itinerari;
};
bool ContenitoreItinerari :: Confronta ( Itinerario itinerario1, Itinerario itinerario2)
{
for (vector<Luogo>::iterator it1 = itinerario1.luoghi.begin();
it1 != itinerario1.luoghi.end(); ++it1)
{
Luogo luogo1 = *it1;
for (vector<Luogo>::iterator it2 = itinerario2.luoghi.begin();
it2 != itinerario2.luoghi.end(); ++it2)
{
Luogo luogo2 = *it2;
if ((luogo1.latitudine == luogo2.latitudine) &&
(luogo1.longitudine == luogo2.longitudine))
return true;
}
}
return false;
}
int main()
{
Itinerario itinerario1("Primo percorso");
itinerario1.Add(100, 200);
itinerario1.Add(230, 500);
itinerario1.Add(20, 300);;
Itinerario itinerario2("Secondo percorso");
itinerario2.Add(100, 200);
itinerario2.Add(230, 500);
itinerario2.Add(20, 300);
Itinerario itinerario3("Terzo percorso");
itinerario3.Add(100, 200);
itinerario3.Add(230, 500);
itinerario3.Add(20, 300);
Itinerario itinerario4("Quarto percorso");
itinerario4.Add(100, 200);
itinerario4.Add(230, 500);
itinerario4.Add(20, 300);
ContenitoreItinerari contenitore;
contenitore.itinerari.push_back(itinerario1);
contenitore.itinerari.push_back(itinerario2);
contenitore.itinerari.push_back(itinerario3);
contenitore.itinerari.push_back(itinerario4);
cout << "Percorsi differenti:" << endl;
vector<Itinerario> differenti;
for (vector<Itinerario>::iterator it1 = contenitore.itinerari.begin(); it1 != contenitore.itinerari.end(); ++it1)
{
for (vector<Itinerario>::iterator it2 = contenitore.itinerari.begin(); it2 != contenitore.itinerari.end(); ++it2)
{
if ((it1 != it2) && (contenitore.Confronta(*it1, *it2) == false))
{
differenti.push_back(*it1);
cout << it1->nome << endl;
}
}
}
return 0;
}
Mi da errore nel metodo confronta...