哈希集合为一个无序集合,类似于哈希表(unordered_map),不过hash表用来查找元素的,而哈希集合主要是存储元素,判断是否在里面。
需要注意的是:
- unordered_set存储的不是键值对,而仅存储数据的值,可以通过迭代器来遍历集合中的每个值。
- 哈希集中的值互不相同(集合互异性),且不可被修改!
- 无序
一.初始化
#include <unordered_set> //set为#include <set>
unordered_set<Node*> set; //Node*类型
unordered_set<int> set={2,4,8}; //直接初始化
unordered_set<int> set2(set); //拷贝构造
二. 基本操作
int a;
int n=set.size(); //当前集合元素个数
//插入
set.insert(a); //向集合中插入元素a
set.emplace(a); //比insert效率更高的插入
//删除
set.erase(a); //删除集合中的a
//清空
set.clear();
//查找
auto b=set.find(6); //查找值为6的元素,若有返回迭代器,若无返回end()
int nums=set.count(6); //集合中值为6的元素个数