probleme avec la méthode insert de std::set
bonjour,
devant utiliser la classe set de la librairie stl, nous sommes tombé sur un probleme d'insertion.
voici un bout de code
Code:
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:
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:
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