unordered_set基本用法
·
Unodered Set
无序集(unorder sets)是一种不按特定顺序存储唯一元素的容器,允许根据元素的值快速检索单个元素。
在unordered_set
中,元素的值同时也是唯一标识它的键。键是不可变的,因此,unordered_set
中的元素在容器中不能被修改,但是它们可以被插入和删除。
在内部,unordered_set
中的元素并不按照任何特定的顺序排序,而是根据它们的散列值组织到桶中,从而允许根据它们的值直接快速访问单个元素(平均时间复杂度为常数)。
与set容器相比,Unordered_set容器通过键访问单个元素的速度更快,尽管它们通常在通过元素的子集进行范围迭代时效率较低。
容器的属性
关联性
关联容器中的元素是通过它们的键引用的,而不是通过它们在容器中的绝对位置引用的。
无序性
无序容器使用哈希表组织元素,允许通过键快速访问元素。
具有set特性
元素的值也是用来标识它的键。即value
就是key
。
独一无二的key
容器中没有两个元素具有相同的键。
Allocator-aware
容器使用一个allocator对象来动态地处理其存储需求。即当你插入或者删除数据时,容器会自动处理空间。
常用方法
unorder_set<string> 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()
清空容器
迭代器的使用
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <unordered_set>
using namespace std;
int main()
{
unordered_set<string> myset = {"Mercury","Venus","Earth","Mars","Jupiter","Saturn","Uranus","Neptune"};
for (auto it = myset.begin(); it != myset.end(); ++it)
cout << *it << endl;
return 0;
}
更多推荐
已为社区贡献3条内容
所有评论(0)