0、概述
-
unordered_set
容器,可直译为无序 set 容器。即unordered_set
容器和set
容器很像,唯一的区别就在于set
容器会自行对存储的数据进行排序,而unordered_set
容器不会。 - 下面是
set
、multiset
和unordered_set
之间的差别。
注意这三种集合的底层实现,他决定了算法的时间复杂度。特别注意multiset
其实是数值可重复版本的set
。 - 需要添加头文件和命名空间
#include<vector> using namespace std ;
1、unordered_set容器初始化
- 创建空的set
unordered_set<int> set1;
- 拷贝构造
unordered_set<int> set2(set1);
- 使用迭代器构造 【常用】
unordered_set<int> set3(set1.begin(), set1.end());
- 使用数组作为其初值进行构造
unordered_set<int> set4(arr,arr+5);
- 使用处置列表进行构造
unordered_set<int> set6 {1,2,10,10};
2、unordered_set遍历
- C11
for(int x : set1) { cout << x << endl; }
- 迭代器 【常用】
for(unordered_set<int>::iterator it = set1.begin(); it != set1.end(); ++it){ cout << *it << end; }
-
下面的遍历方式不正确
for(int i=0;i<set1.size();i++){ cout << set1[i] << endl; }
3、unordered_set常用函数
- find() 【常用】
myset.find(x)
功能为:查找x
,找到之后返回迭代器,失败则返回myset.end()
。注意:unordered_set
中数值不可重复,所以被寻找的数只有存在和不存在这两种情况,不可能出现多次。 - insert() 【常用】
myset.insert(x)
功能为:插入元素x
- erase()
myset.erase(x)
功能为:删除元素x
,成功则返回1,失败则返回0
文章来源地址https://www.toymoban.com/news/detail-491793.html
文章来源:https://www.toymoban.com/news/detail-491793.html
到了这里,关于STL容器——unordered_set的用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!