因为map是有序容器,内部会对建立红黑二叉树,所以Map的key在存放内置类型是,是利用内置的 <操作符进行排序的。如果key是自定义类型,你就需要重载<操作符。
以配合map内部的less的函数。
下面给出less的实现
struct less : public binary_function(_ty , _Ty, boo)
{
bool operator() (const _Ty& _Left , const _Ty& _Right) const
{
return (_Left < _Right); //这里我们必须要实现<操作符
}
}
这里要注意:1. map的默认排序是调用less ,你也可以使用自定义的仿函数;2. 在实现<操作符时,记得是const函数!