您的位置:首页 > 其它

STL 中的集合 set 的用法

2018-03-08 19:46 399 查看
set 的基本用法:#include<iostream>
#include<set>
#include<stdio.h>
#include<vector>
using namespace std;

int main()
{
set<int> s;
int n,a;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&a);
s.insert(a);///插入某个元素
}

printf("返回set容器的第一个元素的地址 %d\n",s.begin());
printf("返回set容器的第一个元素 %d\n",*s.begin());
printf("返回set容器的最后一个元素地址 %d\n",s.end());
printf("返回set容器的最后一个元素 %d\n",*s.end());
printf("返回set容器可能包含的元素最大个数 %d\n",s.max_size());
printf("返回当前set容器中的元素个数 %d\n",s.size());

set<int> :: iterator it;///遍历
for(it=s.begin();it!=s.end();it++)
printf("%d ",*it);///会按照从小到大的顺序输出,元素在set中已经自动排好顺序了
printf("\n");

s.clear();///删除set容器中的所有的元素
if(s.empty())///判断set容器是否为空
printf("s 为空\n");

return 0;
}set 和结构体一起使用,如下:#include<iostream>
#include<set>
#include<stdio.h>
#include<vector>
using namespace std;

struct book{
int id;
int sor;
}h;

bool operator < (const book &x,const book &y)///对于set里的排序,需要自己定义
{
return x.id < y.id;
}

int main()
{
set<book> s;
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d %d",&h.id,&h.sor);
s.insert(h);///插入某个元素
}

set<book>:: iterator it;
for(it=s.begin();it!=s.end();it++)
{
printf("%d %d\n",(*it).id,(*it).sor);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: