Bonjour,
Je n'arrive pas à utiliser les maps pour en faire une table de hachage avec la clé comme clé primaire. Le problème ici précisément est une augmentation de la taille de map que je comprends pas.
Le code qui provoque l'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 ... typedef map<term,term_list> type_terms; ... term_map::term_map() { terms=new type_terms(); } ... unsigned int term_map::size() const { return terms->size(); }
sortie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 ... void term_map::insert(const term& t,const term& e) { type_terms::const_iterator it=terms->find(t); cout<<"X : "<<size()<<endl; if(it==terms->end()) (*terms)[t]=term_list(); cout<<"A : "<<size()<<endl; cout<<"A : "<<(*terms)[t]<<endl; //(*terms)[t]=term_list();//.insert(e); cout<<"B : "<<size()<<endl; cout<<"B : "<<(*terms)[t].size()<<endl; }
Donc, je ne fais qu'accéder à un élément de la map dont la clé existe déjà et apparement une nouvelle entrée se crée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 X : 0 A : 1 A : [] B : 2 B : 0
Merci de votre aide
Partager