set容器(1)

最近学了个set容器,不得不说真的太好用了!


set收个啥东西? 

Set(集合)属于关联式容器,也是STL中最实用的容器,关联式容器依据特定的排序准则,

自动为其元素排序。 Set集合的底层使用一颗红黑树(可能读者对此不太了解,等但学到树论与图论的章节的时候就会明白原因),其属于一种非线性的数据结构,每一次插入数据都会自动进行排序,注意,不是需要排序时再排序,而是每一次插入数据的时候其都会自动进行排序。 因此,Set中的元素总是顺序的。 Set的性质有:数据自动进行排序且数据唯一,是一种集合元素,允许进行数学上的集合相关的操作。

那他的优点是什么呢?

众所周知数组排序的方法有很多,快排,插入排序 ,sort(),等等。但

set输入数据后会自动排序+去重,对我这种菜鸡非常的人性。

关键他还短!!!

接下来是set的一些常用用法:

  • 容器大小:st.size();
  • 容器插入:st.insert();
  • 容器判空:st.empty();

话不多说看程序

--#include<iostream>
--#include<set>
--using namespace std;
--int n,k;
--int main(){
--	cin>>n>>k;
--	set<int> s;
--	for(int i=1;i<=n;i++){
--		int x;
--		cin>>x;
--		s.insert(x);
--	}
--	//自动去重+自动排序 
--	set<int>::iterator it=s.begin();
--	int cnt=1;
--	for(;it!=s.end();it++){
--		if(cnt==k){
--			cout<<*it<<endl;
--			return 0;
--		}
--		cnt++;
--	}
--	cout<<"NO RESULT"<<endl; 
--	return 0;
}

上面的是洛谷的第k小整数,我已经做过防AC加密了。

等我后续发(2)

!!!!!我会更新的!!!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值