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,反之为falsefirst.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;
}
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)