地图可以包含类对象或类对象吗?

时间:2011-10-22 05:11:47

标签: c++ class stl map

map可以包含类对象还是类对象?

我认为key应该是一个内置的主类型,它的关联数据值可以是类或类对象。

例如,

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

密钥是否可以成为自定义类?

stl::map<myClass , int> myMap;

如果是,如何对密钥进行排序?

感谢

1 个答案:

答案 0 :(得分:1)

是。 map的密钥可以是任何具有默认构造函数的密钥,支持复制和比较。默认情况下,map会将密钥与std::less比较器进行比较,后者会调用operator <。因此,如果您为类定义operator <,或者为地图提供自定义比较类,则可以将其与mapset等一起使用。