第16周 范型程序补充之set用法
2016-06-17 16:57
204 查看
*Copyright(c) 2016.烟台大学计算机与控制工程学院
*ALL rights reserved.
*文件名称:main.cpp
*作者:孙亚茹
*完成日期:2016年6月17日
*问题描述:阅读程序,体会结果。
*//、
![](http://img.blog.csdn.net/20160617165113074)
总结:
set用于插入元素,元素是有序的,且元素不可以重复。
程序太过复杂有待进一步深究。
*Copyright(c) 2016.烟台大学计算机与控制工程学院
*ALL rights reserved.
*文件名称:main.cpp
*作者:孙亚茹
*完成日期:2016年6月17日
*问题描述:阅读程序,体会结果。
*//、
#include <algorithm> #include<set> #include<iterator> #include<iostream> using namespace std; int main() { set<int>eg1; //插入 eg1.insert(1); eg1.insert(100); eg1.insert(5); eg1.insert(1);//元素1因为已经存在所以set中不会再次插入1 eg1.insert(10); eg1.insert(9); //遍历set,可以发现元素是有序的 set<int>::iterator set_iter=eg1.begin(); cout<<"Set named eg1:"<<endl; for(; set_iter!=eg1.end(); set_iter++) cout<<*set_iter<<" "; cout<<endl; //使用size()函数可以获得当前元素个数 cout<<"Now there are "<<eg1.size()<<" elements in the set eg1"<<endl; if(eg1.find(200)==eg1.end())//find()函数可以查找元素是否存在 cout<<"200 isn't in the set eg1"<<endl; set<int>eg2; for(int i=6; i<15; i++) eg2.insert(i); cout<<"Set named eg2:"<<endl; for(set_iter=eg2.begin(); set_iter!=eg2.end(); set_iter++) cout<<*set_iter<<" "; cout<<endl; //获得两个set的并 set<int>eg3; cout<<"Union:"; set_union(eg1.begin(),eg1.end(),eg2.begin(),eg2.end(), insert_iterator<set<int> >(eg3,eg3.begin()));//注意第五个参数的形式 copy(eg3.begin(),eg3.end(),ostream_iterator<int>(cout," ")); cout<<endl; //获得两个set的交,注意进行集合操作之前接收结果的set要调用clear()函数清空一下 eg3.clear(); set_intersection(eg1.begin(),eg1.end(),eg2.begin(),eg2.end(),insert_iterator<set<int> >(eg3,eg3.begin())); cout<<"Intersection:"; copy(eg3.begin(),eg3.end(),ostream_iterator<int>(cout," ")); cout<<endl; //获得两个set的差 eg3.clear(); set_difference(eg1.begin(),eg1.end(),eg2.begin(),eg2.end(),insert_iterator<set<int> >(eg3,eg3.begin())); cout<<"Difference:"; copy(eg3.begin(),eg3.end(),ostream_iterator<int>(cout," ")); cout<<endl; //获得两个set的对称差,也就是假设两个集合分别为A和B那么对称差为AUB-A∩B eg3.clear(); set_symmetric_difference(eg1.begin(),eg1.end(),eg2.begin(),eg2.end(),insert_iterator<set<int> >(eg3,eg3.begin())); copy(eg3.begin(),eg3.end(),ostream_iterator<int>(cout," ")); cout<<endl; return 0; }
总结:
set用于插入元素,元素是有序的,且元素不可以重复。
程序太过复杂有待进一步深究。
相关文章推荐
- 重要查询语句
- 大道无形 难以揣摩的苹果商店审核制度
- 第二阶段冲刺第八天
- JS 常用特殊处理
- JAVA字符串转日期或日期转字符串
- PP后台配置-定义工作中心标准值
- 短信验证or语音验证
- 正则表达式30分钟入门教程
- sitemesh实现页面Js及Css简单化(java)
- 可以节约很多代码的几个正则表达式
- DMP文件的生成和使用
- 《架构师成长之路》连载之NO.1
- HDU-2888 Check Corners(二维RMQ)
- P6 EPPM 安装和配置指南
- testng报错"java.net.SocketException: Software caused connection abort: socket write error"
- JSON语法解析
- NYOJ 635 Oh, my goddess (BFS + 优先队列)
- 组合数模任意数
- javascript笔记1.
- 如何实现JS_MD5加密