首先,我们需要导入头文件
#include <bits/extc++.h>
其次,我们需要导入名字空间
using namespace __gnu_pbds;
然后我们就可以用pbds定义一个集合啦~
比如:tree<pair<int,int>,null_type,less<pair<int,int> >,rb_tree_tag,tree_order_statistics_node_update>s;
从左至右依次为:
- Key: 储存的元素类型,因为集合中不能包含相同的元素,所以我们选择pair<int,int>
- Mapped: 映射规则(Mapped-Policy)类型,通过使用null_type指示关联容器是集合
- Cmp_Fn: 关键字比较函子
- Tag: 底层数据结构类型
- Node_Update:用于更新节点的策略,为了使用 order_of_key 和 find_by_order 方法,需要使用 tree_order_statistics_node_update