1. multiset:
multiset是允许元素重复的集合,并且可以实现定点删除,我们往往用它来实现需要定点删除的堆。
定点删除操作:通过find()或lowe_bound()或upper_bound()来确定迭代器的位置,然后调用erase()来删除。
multiset默认的是最小堆,当使用multiset<int, greater<int>> 来声明时,是最大堆。
multiset对比较的定义是:
Binary predicate that, taking two values of the same type of those contained in the multiset, returns true if the first argument goes before the second argument in the strict weak ordering it defines, and false otherwise.
This shall be a function pointer or a function object.
若第一个参数和第二个参数以(Arg1, Arg2)遵循某个严格弱序时,返回true。
2. priority_queue:
通常我们把它当做最小堆来用。
此时声明方式:priority_queue<int, vector<int>, greater<int>>
默认则为最大堆。
3. 关于比较器:
我去看看,再学习记录