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;
}
#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;
}
相关文章推荐
- C++ STL set集合容器常用用法
- c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例
- c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例
- C++/STL关联容器-集合-multiset&set的用法
- c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例
- C++之STL中set的用法 PAT L2-005 集合相似度
- 【深入理解java集合系列】List,Set,Map用法以及区别
- STL中set的用法
- array_filter、find_in_set查询id是否在id集合中、concat连接字符串,ifnull、if用法
- stl几个(set map vector string)用法
- Java 集合框架之set用法
- 【C++ 与 STL】集合:set
- STL:set/multiset用法详解
- Java中集合容器类List和Set的用法
- 集合相等问题 sdut1791 (set简单用法)
- C++之STL中set的用法总结
- Python中的集合:set与frozenset用法举例
- STL::set用法
- C++的STL中集合(set)的使用说明
- (转)STL中set的用法