C++ STL中set与unordered_set对比
- 我们需要有序的数据。
- 我们必须(按顺序)打印/访问这些数据。
- 我们需要元素的前身/继承者。
- 因为set是有序的,所以可以对set元素使用binary_search()、lower_bound()和upper_bound()等函数。这些函数不能用于unordered_set()。
使用unordered_set
- 我们需要保留一组不同的元素,不需要排序。
- 我们需要单元素访问i.e。没有遍历。
例子:
如果你想查看c++ STL中set和unordered_set的实现细节,请参阅set Vs Map。Set允许按有序顺序遍历元素,而Unordered_set不允许按有序顺序遍历元素。
输出:
输出:
前任/继任者 : Set可以修改为查找前任或继任者,而Unordered_set不允许查找前任/继任者。
输出:
让我们用表格的形式来看看它们的区别:
No. | set | unordered_set |
---|---|---|
1. | 它用于存储独特的元素。 | 它用于存储独特的元素。 |
2. | 集合是用二叉搜索树实现的。 | 它是用哈希表实现的 |
3. | 它按递增顺序存储元素。 | 它不按顺序存储元素。 |
4. | 我们可以使用迭代器遍历集合。 | 可以使用迭代器遍历unordered_set。 |
5. | 它包含在#include <set> 头文件中。 |
它包含在#include <unordered_set> 头文件中。 |