C++ set学习初步

网友投稿 649 2022-08-27

C++ set学习初步

C++ set学习初步

C++的set容器有着许多方便使用的特性,比如set 可以“过滤”重复的文本单词(数字等),并且从小到大排好序,利用set的qset.count(number)可以返回number在qset中出现的次数(有则是1,无则是0),可以查看最大空间maxsize,查看已用空间size,插入insert(),删除erase(),但是容器带来便利的同时也带来了一些麻烦,比如反序遍历就显得流程较多。

#include #include#include using namespace std;int main(int argc, char *argv[]) { freopen("cout.txt","w",stdout); int a[10]={1,2,1,2,4,7,8,9,5,3},i; set number(a,a+10); set::iterator ix=number.begin(); for(;ix!=number.end();ix++) cout<<*ix<<" "; cout<::reverse_iterator iy=number.rbegin(); for(;iy!=number.rend();iy++)cout<<*iy<<" "; cout<

结果:

1 2 3 4 5 7 8 9 0出现的次数:0 1出现的次数:1 2出现的次数:1 3出现的次数:1 4出现的次数:1 5出现的次数:1 6出现的次数:0 7出现的次数:1 8出现的次数:1 9出现的次数:1 10出现的次数:0 maxsize: 214748364 size: 17 1 2 3 4 5 7 8 9 11 12 13 14 15 16 17 18 19 17 19 18 17 16 15 14 13 12 11 9 8 7 5 4 3 2 19 18 17 16 15 14 13 12 11 9 8 7 5 4 3 2 1

codeforces 620 C. Pearls in a Row

​​— the number of pearls in a row.

n integers ai (1 ≤ ai ≤ 109) – the type of the i-th pearl.

分析:因为涉及到判重的问题,且输入的数字很大,所以可以使用C++ STL中的set

#include #include #include using namespace std;const int N = 3e5+5;int cnt[N];int top;int main(){ int n, i, tmp; while(~scanf("%d",&n)){ set st; top = 0; for(i=0;i0){ printf("%d\n",top); int left = 1; for(i=0;i

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:UVA10892 LCM Cardinality(gcd)
下一篇:用ASP.net判断上传文件类型的三种方法(文件上传判断文件类型)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~