C++ set
2015-06-30 10:35
387 查看
C++的set容器有着许多方便使用的特性,比如set 可以“过滤”重复的文本单词(数字等),并且从小到大排好序,利用set的qset.count(number)可以返回number在qset中出现的次数(有则是1,无则是0),可以查看最大空间maxsize,查看已用空间size,插入insert(),删除erase(),但是容器带来便利的同时也带来了一些麻烦,比如反序遍历就显得流程较多。
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
#include <iostream> #include<cstdio> #include <set> 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<int> number(a,a+10); set<int>::iterator ix=number.begin(); for(;ix!=number.end();ix++) cout<<*ix<<" "; cout<<endl; for(i=0;i<=10;i++)printf("%d出现的次数:%d\n",i,number.count(i)); for(i=11;i<20;i++)number.insert(i); cout<<"maxsize: "<<number.max_size()<<endl; cout<<"size: "<<number.size()<<endl; for(ix=number.begin();ix!=number.end();ix++) cout<<*ix<<" "; cout<<endl; for(ix=number.end();ix!=number.begin();ix--) //wrong cout<<*ix<<" "; cout<<endl; set<int>::reverse_iterator iy=number.rbegin(); for(;iy!=number.rend();iy++)cout<<*iy<<" "; cout<<endl; return 0; }结果:
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
相关文章推荐
- C++ MFC 中使用多线程操作实例
- C#调用C++方法,C#使用c++方法返回类或结构体。
- <C++11 新特性解析与应用> 读书笔记
- 在C语言中的字符串(二)
- C++ Custom Control控件向父窗体发送对应的消息
- 用C++实现查找指定文件夹下的类型文件名
- static
- C++虚函数绑定的编译器实现
- C++ 四种退出线程的方法
- C++学习笔记
- C/C++中volatile关键字详解(转)
- C++ 操作Word入门教程
- VC++ 文件操作
- C语言字符串声明
- C++ Programming Tutorials_4翻译
- C++ 多线程
- [置顶] 文章索引~ Visual C++
- C语言控制台打印3D爱心图案
- C++关键字或运算符
- C语言实现红黑树