小菜鸡报到,记录所学.......(望海涵!!!)
set 是一个容器,它可以像数组一样存东西,它是STL里的东西,与map、vector类似,但又有不同。
先声明一个set的名称:
set<int >se;
这里是定义了set的名称为se,数据类型为int,(类似于:int se[ ] ) 。
下面是一些基本操作:
se. begin () //返回指向第一个元素的迭代器
se. clear () //清除所有元素
se. count () //返回某个值元素的个数
se. empty () //如果集合为空,返回true
se. end () // 返回指向最后一个元素之后的迭代器,不是最后一个元素
se. erase () //删除集合中的元素
se. find () //返回一个指向被查找到元素的迭代器
se. insert () //在集合中插入元素
se. max_size () //返回集合能容纳的元素的最大限值
se. size () //集合中元素的数目
se. swap () // 交换两个集合变量
set <int >:: iterator //set的迭代器
下面是去重的栗子:
#include<cstdio>
#include<set>
#include<iostream>
using namespace std;
int main() {
set<int>se;
int n,m,i,k;
while(scanf("%d %d",&n,&m)!=EOF) {
for(i=0; i<n; i++) {
scanf("%d",&k);
se.insert(k);
}
for(i=0; i<m; i++) {
scanf("%d",&k);
se.insert(k);
}
for(set<int>::iterator i=se.begin();i!=se.end(); i++)
{
if(i==se.begin ())
cout<<*i;
else
{
cout<<" "<<*i;
}
}
cout<<"\n";
se.clear() ;
}
return 0;
}/*
Input
2 2 //输入 n、m 两个数
1 2 // n 个数
2 3 // m 个数
1 2 // 同上
1
1 2
Output
1 2 3 //第一组数据输出
1 2 //第二组数据输出
用 set 中的 insert 去掉重复的数
*/