容器中元素操作的类型也是容器类型的一部分。在定义关联容器时,需要将自定义的操作类型在尖括号中紧跟在元素类型之后。
如Fruit类无<运算符,可以定义如下的函数
bool compare(const Fruit &lhs,const Fruit &rhs)
{
return lhs.size()<rhs.size();
}
在定义multiset时提供两个类型:关键字类型Fruit,以及比较操作类型(函数指针类型)。
在定义此容器类型的对象时,需要提供想要使用的操作的指针
如
multiset<Fruit,decltype(compare)*> apple(compare);