#include <unordered_set>
存储已插入元素的个数, 未插入过的为0
unordered_set a;
a.insert(3);
a[3] == 1;
a.insert(3);
a[3] == 2;
无序集(unorder sets)是一种不按特定顺序存储唯一元素的容器,允许根据元素的值快速检索单个元素。
在unordered_set中,元素的值同时也是唯一标识它的键。键是不可变的,因此,unordered_set中的元素在容器中不能被修改,但是它们可以被插入和删除。
在内部,unordered_set中的元素并不按照任何特定的顺序排序,而是根据它们的散列值组织到桶中,从而允许根据它们的值直接快速访问单个元素(平均时间复杂度为常数)。
与set容器相比,Unordered_set容器通过键访问单个元素的速度更快,尽管它们通常在通过元素的子集进行范围迭代时效率较低。(set是有序的)
容器的属性
-
关联性
关联容器中的元素是通过它们的键引用的,而不是通过它们在容器中的绝对位置引用的。 -
无序性
无序容器使用哈希表组织元素,允许通过键快速访问元素。 -
具有set特性
元素的值也是用来标识它的键。即value就是key。 -
独一无二的key
容器中没有两个元素具有相同的键。 -
Allocator-aware
容器使用一个allocator对象来动态地处理其存储需求。即当你插入或者删除数据时,容器会自动处理空间。
函数用法
unorder_set first容器定义
first.empty()判断容器是否是空,是空返回true,反之为false
first.size()返回容器大小
first.maxsize()返回容器最大尺寸
first.begin()返回迭代器开始
first.end()返回迭代器结束
first.find(value)返回value在迭代器的位置
first.count(key)返回key在容器的个数
first.insert(value)将value插入到容器中
first.erase(key)通过key删除
first.clear()清空容器