C++学习笔记--STL标准模板库的认识与使用--关联式容器--自定义比较方式

set 在默认情况下的比较函数为 <(如果是非内置类型需要 重载 < 运算符)。然而在某些特殊情况下,我们希望能自定义 set 内部的比较方式。

这时候可以通过传入自定义比较器来解决问题。

具体来说,我们需要定义一个类,并在这个类中 重载 () 运算符

例如,我们想要维护一个存储整数,且较大值靠前的 set,可以这样实现:

struct cmp {
  bool operator()(int a, int b) { return a > b; }
};
set<int, cmp> s;

对于其他关联式容器,可以用类似的方式实现自定义比较,这里不再赘述。

Guess you like

Origin blog.csdn.net/qq_51701007/article/details/121278199