Может ли карта содержать объекты класса или объекты класса? - PullRequest
0 голосов
/ 22 октября 2011

Может ли карта содержать объекты класса или объекты класса?

Я думаю, ключ должен быть встроенным первичным типом, его значение может быть связано с классом или объектом класса.

Например,

stl::map<int , myClass> myMap;
myMap.insert(pair<int , myClass>);

Возможно ли, чтобы ключ был самоопределяемым классом?

stl::map<myClass , int> myMap;

если да, то как отсортировать ключ?

спасибо

1 Ответ

1 голос
/ 22 октября 2011

Да. Ключ map может быть любым, который имеет конструктор по умолчанию, поддерживает копирование и сравнение. По умолчанию map сравнивает ключи с компаратором std::less, который вызывает operator <. Таким образом, если вы определяете operator < для своего класса или предоставляете пользовательский класс сравнения для карты, вы можете использовать его с map, set и т. Д.

...