2013-08-27 3 views
2

Я пытаюсь создать неупорядоченную карту C++, которая связывает строки с одним из моих пользовательских классов. то есть:C++ Unordered Map с пользовательским классом

имя -> EmployeeInfo

Я использовал следующий ЬурейиЙ для определения неупорядоченных карт:

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

Но я получаю ошибку компиляции:

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

Это потому что в шаблоне карты нет оператора эквивалентности для типа std :: string? Если да, может кто-нибудь сказать мне, где и как это написать. Мне просто нужен строковый ключ без учета регистра.

Спасибо!

+4

Вы включили заголовок ''? Кроме того, вам не нужно писать 'class', вам нужно только' std :: unordered_map ' – juanchopanza

ответ

2

Готов поспорить, вы забыли включить заголовок строки. Это должно определить все строковые операторы.

+0

Добавление заголовка строки исправлено. Благодарю. Возвращение на C++ после 10-летнего отсутствия. Любить его ... но это борьба после многих кодировок .Net. – user2723146