C++ 中 set 和 unordered_set 常用语法

1. 区别和用法

set 和 unordered_set 都是是不重复的集合。set 的底层通过树实现,且会自动为集合内元素按由小到大排序。unordered_set 的底层通过哈希表实现,并不会自动排序。当创建一个不需要排序的集合时应使用 unordered_set,因为哈希表对元素的查找更快。

结论:需要排序的集合用 set,不需要排序的集合用unordered_set

2. set 常用操作

#include <set>            //set头文件
int x;

set<int> s;               //初始化一个名为s的set,默认升序排列
set<int,greater<int>> s;  //初始化一个名为s的set,降序排列 
set.insert(x);	          //在set中插入x
set.erase(x);		      //删除set中的x元素,返回0表示set中不存在x,1表示删除成功
set.clear();		      //清空set
set.empty();		      //判断set是否为空,若是返回1,否则返回0
set.size();		          //返回set中元素的个数
set.find(x);		      //返回x的迭代器,若x不存在,则返回指向set的尾迭代器
set.count(x);             //返回x出现的次数,0或1
set.lower_bound(x);       //返回一个迭代器,指向第一个键值大于等于x的元素
set.upper_bound(x);       //返回一个迭代器,指向第一个键值大于x的元素
set.begin();		      //返回指向q中第一个元素的迭代器
set.end();		          //返回指向q最后一个元素下一个位置的迭代器(尾迭代器)

3. unorder_set 常用操作

#include <unordered_set>    //unordered_set头文件
int x;

unordered_set<int> s1;      //初始化一个名为s的set
unordered_set.insert(x);    //在set中插入x
unordered_set.erase(x);     //删除set中的x元素,返回0表示set中不存在x,1表示删除成功
unordered_set.clear();		//清空set
unordered_set.empty();		//判断set是否为空,若是返回1,否则返回0
unordered_set.size();		//返回set中元素的个数
unordered_set.find(x);		//返回x的迭代器,若x不存在,则返回指向set的尾迭代器
unordered_set.count(x);     //返回x出现的次数,0或1
unordered_set.begin();	    //返回指向q中第一个元素的迭代器
unordered_set.end();		//返回指向q最后一个元素下一个位置的迭代器(尾迭代器)

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值