set函数的基本用法

map和set的插入删除效率比用其他序列容器高
每次insert之后,以前保存的iterator不会失效
当数据元素增多时,set的插入和搜索速度变化不大(二分查找)

set自动取重并排序;//默认重小到大排序;如需从大到小排序可用set<int,greater < int > >;

基本用法
set< int>s,s1;
一. 不借助迭代器
1. s.cout(x)//返回x在s中的个数(0或者一个);
2. s.clear()//清空s中的所有元素;
3. s.empty()//检查s集合是否为空,如果为空,返回true;
4. s.insert(x)//把x插入到集合中;
5. s.size()//返回s集合的大小;

二. 借助迭代器
set的遍历需要借助迭代器,迭代器返回的是地址;
1.set::iterator it //定义前向迭代器it,正向遍历
(1) s.begin()//返回s的第一个元素;
(2) s.end()//返回s的最后一个元素的后一个元素;
则遍历为
for(it = s.begin();it != s.end();it++) cout << *it << endl;
2.set::reverse_iterator it;//定义反向迭代器it; (1)s.rbegin()//反向返回第一个元素;
(2)s.rend()//反向返回最后一个元素则遍历为:
for(it = s.rbegin();it != s.rend();it++) cout << *it << endl;
3. swap(s,s1)//交换s与s1俩个集合的内容;
4. s.find(x)//返回一个指向x的迭代器,如果x不存在,则指向end;
5. s.erase(i)//删除由i指向的集合元素; s.erase(start,end)//删除start迭代器到end迭代器这个区间的元素;
6. s.insert(start,end)//插入start迭代器到end迭代器这个区间的内容;
7. s.lower_bound(num)//查找到第一个大于等于num的元素;
8. s.upper_bound(num)//查找到第一个大于num的元素;//需要迭代器来接受查找到的地址,又因为是地址,所以可以加减,则可以利用这一点来查找小于num的元素。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值