Могу ли я определить карту, ключ которой является структурой? - PullRequest
14 голосов
/ 14 октября 2010

и как мне это сделать в C ++?

1 Ответ

19 голосов
/ 14 октября 2010

Вы можете использовать любой тип в качестве ключа карты, если он реализует operator< (плюс обычные требования для копирования и назначения для значений, хранящихся в контейнерах).

Например:

struct example { int x; }

bool operator < (const example &l, const example &r) { return l.x < r.x; }

std::map<example, int> values;

В качестве альтернативы вы можете предоставить функцию сравнения в качестве третьего аргумента шаблона карты вместо определения operator<. Подробнее здесь (параметр Compare).

...