您的位置:首页 > 编程语言 > C语言/C++

C++ set

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

#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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: