Bonjour,
j'aimerais utilis� std::set, mais j'ai quelques ennuis ...
Si je compile la classe Test, j'obiens de visual 2002 cette 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
15
16
17
18
19
20 // ------ class SCImports { public: SCImports(const std::string & etat1, const std::string & etat2) : nom1(etat1),nom2(etat2) { } std::string nom1; std::string nom2; }; // ------ // déclaration dans une autre classe Test std::set<SCImports> listeSCImports; // ------ // utilisation dans cette autre classe Test ((std::set<SCImports>) listeMaClasse).insert((SCImports)classe);
C:\Program Files\Microsoft Visual Studio .NET\Vc7\include\functional(139): error C2676: binary '<' : 'const SCImports' does not define this operator or a conversion to a type acceptable to the predefined operator
d'o� ma question, est-ce que je dois surcharger l'op�rateur "<" ?
Est-ce que �a ne devrait pas plut�t �tre l'op�rateur "==" pour d�terminer si la cl� (l'�l�ment � ins�rer) est d�j� pr�sent dans la "liste" set ?
Si je dois surcharger l'op�rateur comment je fais avec ma classe qui a seulement 2 string en attribut, et plus int�ressant comment je fais si c'est une classe qui a plein d'attributs ?
Merci de vos r�ponses, j'esp�re avoir �t� clair. Cependant, il se peut que je n'ai pas bien compris le fonctionnement de set (qui pour moi est une sorte de liste de cl� donc impossible d'avoir 2 fois la m�me cl� dans set), si c'est le cas merci de me donner d'autres informations...
En passant, un lien int�ressant sur les containers :
http://www.mines.u-nancy.fr/~tombre/...olyCpp008.html
Big. K
Partager