例如我有一种Rectangle类,想要用面积的方式给很多矩形排序,使用
multiset<Rectangle, Comp> m;
这个创建容器对象的语句。
那么我定义的Comp必须是一个函数对象吗?不能是一个函数吗?
我定义
bool Comp(const Rectangle &rec1, const Rectangle &rec2)
编译器会说“函数 "Comp" 不是类型名”,似乎只能是
class Comp
{
bool operator()(const Rectangle &rec1, const Rectangle &rec2)
...
}
可是我感觉函数和仿函数应该都是能套进multimap的template中的吧?哪里会有区别呢?