Использование типа класса в качестве карты key_value - PullRequest
3 голосов
/ 23 июня 2010

Может ли переменная Data использоваться в качестве ключа карты?

struct Data {
Data(int X, int Y) {x=X; y=Y;}
int x; int y;
}

int main()
{
   std::map<Data, int> map_;
   map_.insert(std::make_pair(Data(1,2), 0)); //error inserting
}

Ответы [ 2 ]

7 голосов
/ 23 июня 2010

Да, но вам нужно либо определить operator< для типа класса, либо использовать пользовательскую функцию сравнения для std::map.

В документации STL приведен пример использования пользовательской функции сравнения.

1 голос
/ 23 июня 2010

если вам не нужен оператор <, вы можете использовать boost :: unordered_map. </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...