1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
#include <iostream>
#include <stdlib.h>
#include "Neighbor.h"
#include <set>
#include <map>
typedef int IDENTIFICATIVO;
typedef std::set<Neighbor> setNeighbor;
using namespace std;
setNeighbor getNeighbor(IDENTIFICATIVO nodo2);
Neighbor getLink(IDENTIFICATIVO nodo,Neighbor neighbor);
int main(){
setNeighbor myset=getNeighbor(10);
cout << "myset contains:";
setNeighbor::iterator it;
// for ( it=myset.begin() ; it != myset.end(); it++ )
// cout << " " << *it; NEIGHBOR È UNA CLASSE NON POSSO STAMPARE COSI DEVO TROVARE UN MODO TIPO GETID
//Neighbor a=getLink(1,10);
return 0;
}
setNeighbor getNeighbor(IDENTIFICATIVO nodo){ //restituisce tutto l'insieme dei link uscenti da un nodo
Neighbor vicino1(1,100,90,1,1);
Neighbor vicino2(2,100,50,2,2);
Neighbor vicino3(3,100,10,3,3);
Neighbor vicino4(4,100,10,5,5);
Neighbor myints[]= {vicino1,vicino2,vicino3,vicino4};
setNeighbor second (myints,myints+4);
map<IDENTIFICATIVO,setNeighbor > mapme; //ho la mappa posso scorrere tutti i miei Neighbor
mapme[1]=second; //inizializzato la mappa
map< IDENTIFICATIVO,setNeighbor >::iterator itmap;
itmap=mapme.find(nodo); //trovo il nodo a cui aggiungere i neighbor:TESTARE SE RESTITUISCE FALSO IN CASO DI NODO NN TROVATO E FARE UN IF
return (*itmap).second;
}
Neighbor getLink(IDENTIFICATIVO nodo,Neighbor neighbor){//restituisce il link specifico di un nodo tramite i 2 id,uno per l'insieme ed uno per l'elemento(foss id di Neighbor) specifico
Neighbor vicino1(1,100,90,1,1);
Neighbor vicino2(2,100,50,2,2);
Neighbor vicino3(3,100,10,3,3);
Neighbor vicino4(4,100,10,5,5);
Neighbor myints[]= {vicino1,vicino2,vicino3,vicino4};
setNeighbor second (myints,myints+4);
map<IDENTIFICATIVO,setNeighbor > mapme; //ho la mappa posso scorrere tutti i miei Neighbor
mapme[1]=second; //inizializzato la mappa
setNeighbor myset= getNeighbor(nodo);//mi restituisce i vicini del nodo
return *(myset.find(neighbor));;
}
|