Bonjour, mon probl�me est un peu complexe � expliquer. Alors je vais essayer de me faire le plus clair possible. Je travaille sur une impl�mentation en C++ d'application comme celle de la RATP. Au niveau actuel, j'utilise deux unordered_maps dont l'une est embo�t�e dans l'autre et en toute fin un vecteur de paires.Je dispose aussi de deux fichiers .csv l'un qui les diff�rentes stations de metro, une cl� pour unorder_map et diff�rentes autres informations et l'autre qui contient les connexions entre les diff�rentes stations (cl� du d�part, cl� de l'arriv�e, travel_time). Je pr�cise que le compute_travel compte pour deux stations en liaison direct. J'essaie de tirer le travel_time entre deux stations (from,to) ou (_start, _end en uint64) � partir de _start et _end. J'ai impl�ment� deux fonctions : compute_travel et compute_and_display_travel. La premi�re extrait le travel_time et la second affiche le d�placement entre les stations. Mon code compile mais mon travel_time est fix� � 0 comme si le programme n'entrait pas dans la derni�re boucle (ce qui n'est pas normal).
Le voici sans plus tarder :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
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 //COMPUTE_TRAVEL vector<pair<uint64_t,uint64_t> > Station_parser:: compute_travel(uint64_t _start, uint64_t _end){ vector<pair<uint64_t, uint64_t> > vect; //RA1I ? int travel_time=0; //RA1I for(auto& j:connections_hashmap){ for(auto&i:(j.second)){//pour chaque noeud de l'unordered_map connections de connections_hashmap if ((i.first==_start)&&(i.second==_end)){ //on recherche le couple départ-destination travel_time=j.first; //on récupère le travel_time de la connection répond au critère } else cout<<"Erreur"<<endl; } } vect.push_back(make_pair(_start,travel_time)); return vect; } //COMPUTE_AND_DISPLAY_TRAVEL vector<std::pair<uint64_t,uint64_t> > Station_parser::compute_and_display_travel(uint64_t _start, uint64_t _end){ vector<pair<uint64_t, uint64_t> > vect=compute_travel(_start,_end); for(auto &i:vect){ cout << i.first << "," << i.second << endl; } return vect; }
Partager