bonjour,

devant utiliser la classe set de la librairie stl, nous sommes tombé sur un probleme d'insertion.

voici un bout de code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
        printA();
        std::cout << "  " << S_i[0] << "  " <<S_i[1] << std::endl;                      
        A.insert(S_i[0]);
        A.insert(S_i[1]);
        printA();
ou A et S_i sont defini comme ceci

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
  std::set<std::set<CClause*> *, ltstr > A;
   std::vector<std::set<CClause*> *> S_i;
 
 
struct ltstr
{
  bool operator()(std::set<CClause*>* p, std::set<CClause*>* q)
  {
        return p->size() > q->size();
 
  }
};
voila ce que nous obtenons.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
 
A IS PRINTED
A EST VIDE
 
  0x8058178  0x8058198
 
A IS PRINTED
{2 3 } {-3 2 } {-3 -1 2 } {-2 1 3 } {-3 1 2 }
comme on peut le voir, A est vide avant , on essaie d'inserer deux pointeurs differents.
mais il ne met que le premier (une seule ligne). Pourquoi?


merci