incompréhension avec les map
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.
Code:
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();
} |
Le code qui provoque l'erreur
Code:
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;
} |
sortie
Code:
1 2 3 4 5 6
|
X : 0
A : 1
A : []
B : 2
B : 0 |
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.
Merci de votre aide