2013-08-27 4 views
2

J'essaie de créer une carte non ordonnée C++ qui attribue des chaînes à l'une de mes classes personnalisées. à savoir:Carte non ordonnée C++ avec classe personnalisée

nom -> EmployeeInfo

J'ai utilisé la typedef suivante pour définir la carte non numérotée:

typedef std::unordered_map< std::string, class Employee > EmployeeStore; 

Mais je reçois une erreur de compilation:

error C2678: binary '==' : no operator found which takes a left-hand operand of type 'const std::string' (or there is no acceptable conversion) 

Est-ce parce que le modèle de carte n'a pas d'opérateur d'équivalence pour le type std :: string? Si oui, quelqu'un peut-il me dire où et comment écrire cela? Je veux juste une clé de chaîne insensible à la casse.

Merci!

+4

Avez-vous inclus l'en-tête ''? , Vous n'avez pas besoin d'écrire 'class', il vous suffit' std :: unordered_map ' – juanchopanza

Répondre

2

Je parie que vous avez oublié d'inclure l'en-tête de chaîne. Cela devrait définir tous les opérateurs de chaîne.

+0

Ajout l'en-tête de chaîne fixe elle. Merci. Revenir en C++ après 10 ans d'absence. J'adore ... mais c'est difficile après beaucoup de codage .Net. – user2723146

Questions connexes