关联容器Set
来源:互联网 发布:淘宝运费险在哪里设置 编辑:程序博客网 时间:2024/06/05 02:45
关联容器Set
set和map一样属于关联容器,set是集合,map是映射。
set容器中的元素已经是有序的,一般是升序,可以根据自己的需要改变排序方式。
使用set
#include<set>
set<int> s;
s.insert(3);
set的集合功能:
两个有序集的并
set_union(s1.begin(),s1.end(),s2.begin(),s2.end(),inserter(s,s.begin()));
两个有序集的交
set_intersection(s1.begin(),s1.end(),s2.begin(),s2.end(),inserter(s,s.begin()));
两个有序集的差
set_difference (s1.begin(),s1.end(),s2.begin(),s2.end(),inserter(s,s.begin()));
求两个集合的并、交和差集
输入
5
3 2 1 5 4
5
5 8 7 6 4
输出
1 2 3 4 5 6 7 8
4 5
1 2 3
程序代码:
#include<iostream>
#include<fstream>
#include<set>
#include<algorithm>
#include<iterator>
using namespace std;
void main()
{
//定义set对象
set<int> s1;
set<int> s2;
set<int> s;
int number,input;
ifstream stream("input.txt");
stream>>number;
for(int j=1;j<=number;j++)
{
stream>>input;
s1.insert(input);
}
stream>>number;
for(int k=1;k<=number;k++)
{
stream>>input;
s2.insert(input);
}
//往set对象中插入数据
//合并两个集合
for(int f=1;f<=3;f++)
{
switch(f)
{
case 1:
set_union(s1.begin(),s1.end(),s2.begin(),s2.end(),inserter(s,s.begin()));
break;
case 2:
set_intersection(s1.begin(),s1.end(),s2.begin(),s2.end(),inserter(s,s.begin()));
break;
case 3:
set_difference(s1.begin(),s1.end(),s2.begin(),s2.end(),inserter(s,s.begin()));
break;
default: break;
}
//定义set对象的迭代器
set<int>::iterator p;
p=s.begin();
for (int g=0;g<s.size();g++)
{
cout << *p <<" ";
p++;
}
cout<<endl;
s.clear();
}
}
- 关联容器Set
- STL关联容器--Set
- 关联容器map set
- 关联容器 set
- set关联容器
- 关联容器 set map
- 关联容器map,set
- 关联容器set map
- Chapter 14.关联容器set
- STL关联容器—set
- 【STL】关联容器 — set
- 关联容器(一):set
- 关联式容器set/multiset
- 关联容器--map和set
- C++关联容器:map,set...
- STL关联容器之set
- STL容器-关联式容器set/multiset
- 【STL】容器 > 关联式容器 > set(集合)
- 一个典型的Windows 98 INF文件
- Klocwork自动测试脚本之ReStartService.cmd文件清单
- WM_Close,WM_Destory与WM_Quit的区别
- 软件开发
- 大数问题
- 关联容器Set
- 第一个j2me程序
- 全方位移动机器人模糊PID运动控制研究
- D3DPRESENT_PARAMETERS 参数说明
- 秘诀工作效率与薪水翻番
- Horner法则的递归实现
- Jive的缓存机制
- 一个典型的Windows 2000 INF文件
- 点距