博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ STL set用法小结
阅读量:2439 次
发布时间:2019-05-10

本文共 1907 字,大约阅读时间需要 6 分钟。

STL里面的一个实用的的容器set,可以称之为集合,在里面存放的元素唯一确定

set会自动对容器里的元素排序。

所需头文件: #include<set>

set中常用方法:

begin():返回第一个元素的地址.

end():返回最后一个元素的地址.

empty():判断集合是否为空.

clear():清空set中所有元素.

max_size():返回set容器可能包含的元素最大个数.

size():返回当前容器中元素的个数.

count():返回set中某个键值的个数,因为一个键值在set中只能出现一次或0次,也就变成了判断该元素是否出现.

equal_range():返回一对定位器,分别表示第一个大于或等于给定关键值的元素和 第一个大于给定关键值的元素,这个返回值是一个pair类型,如果这一对定位器中哪个返回失败,就会等于end()的值.

erase(it):删除迭代器指针it处元素.

insert():插入某个元素.

代码演示:

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;int main(){ set
s; for(int i=1;i<=10;i++) s.insert(i); cout<
<
::iterator it; for(it=s.begin();it!=s.end();it++){ cout<<*it<<' '; } cout<
::const_iterator,set
::const_iterator> pr; pr=s.equal_range(3); cout<<"第一个大于等于3的数是:"<<*pr.first<
::iterator first; set
::iterator second; s.erase(s.begin()); first=s.begin(); second=first; second++;second++; s.erase(first,second); cout<<"删除后set中元素有:"<
运行截图:

再来补上一个今天用set做的题:

传送门:

题目大概意思是:给你n个字符串,每个字符串的根定义为去掉字符串里重复的字符后剩下的字符构成的字符串,不管顺序,问最后有多少个根字符串?

AC代码:

/********************************************** *Author*        :coderdz *Created Time*  : 2018/5/2 20:42:04*********************************************/#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define IO ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0)#define rep(i,n) for(int i=1;i<=n;i++);#define m(a,b) memset(a,b,sizeof(a))typedef pair
PII;typedef long long LL;const int MAXN=1e5+10;inline void OPEN(string s){ freopen((s + ".in").c_str(), "r", stdin); freopen((s + ".out").c_str(), "w", stdout);}int main(){ IO; set
s; s.clear(); int n; cin>>n; while(n--){ set
ss; set
::iterator it; ss.clear(); string t; cin>>t; for(int i=0;i
你可能感兴趣的文章
SQLite的性能优化
查看>>
SQLite的并发处理
查看>>
cocos2d-x on wp8架构简介
查看>>
cocos2d-x中对象的位置,旋转,缩放
查看>>
cocos2d-x 的动画
查看>>
Camera相关技术
查看>>
.NET源码的内部排序实现
查看>>
.NET源码中的二分查找实现
查看>>
.NET源码中的链表
查看>>
单链表逆序
查看>>
二叉树遍历(层次,递归,非递归)
查看>>
判断单链表是否有环、找出两个单链表的交点
查看>>
Android Intent 简介
查看>>
Android Service 简介
查看>>
Windows Phone 8.1 App 图片资源需求列表
查看>>
.NET源码中的栈
查看>>
LeetCode基础--二叉树-求最小高度
查看>>
LeetCode基础--二叉树-判断二叉树是否平衡
查看>>
LeetCode基础--二叉树--反转左右子树
查看>>
LeetCode基础--位运算(in progress)
查看>>