今天是sets,
1. 类型:
在erlang中sets的数据结构有四种, ordsets, sets, gb_sets, sofs。
2. 定义:
ordsets: 有序集合
sets: 集合
gb_sets: AA 平衡二叉树实现的有序集合
sofs: Sets of sets (sofs) 集合的集合
3. 接口函数:
ordsets, sets 有一样的接口函数(所谓对于集合的一般操作), gb_sets 提供了更多的接口函数, 比如对于最大值和最小值的处理等。
4. 优缺点:
sets的这些类型,ordsets, sets, gb_sets 基本可以对应到key-value 的数据类型 orddict,dict, gb_trees ;优缺点也类似。 还有一个类型是sofs,相对于其他蛮特殊的类型, 不做比较。
5. notes:
gb_sets, ordset, sofs 使用== 来判断,也就是说1,1.0 是一个元素。 而sets用=:= 来判断。
6. 使用场合:
otp团队建议在大多数情况下使用gb_sets, 如果你想要用一种更加清晰的方式来表达程序,可以再适当的时候选择ordset。 当然如果你需要使用=:= 操作符号,就只能使用sets了。