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 : 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();
}
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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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