set容器
2016-06-16 09:07
387 查看
问题及代码:
/*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:李一波 * 完成日期:2016年6月16日 * 版本号:codeblocks * * 问题描述: * 输入描述: * 程序输出: */ #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; }
运行结果:
相关文章推荐
- Copying Accelerated Video Decode Frame Buffers
- 第十四周阅读项目(1)
- 10 11周阅读程序(2)
- MFC中使用openCV显示、处理图像
- asyncio创建协程解析——分析廖雪峰的Python教程之创建WEB服务(转)
- 使用kindeditor时,取不到值
- 第十二周项目训练4
- WebService到底是什么?
- MD5加密
- python基础教程之分支、循环简单用法
- VC操作XML
- 第16周 程序阅读(2)
- javascript作用域、作用域链(菜鸟必看)
- Keil(MDK-ARM)使用教程(一)_界面+菜单
- HTML5的manifest缓存
- Ajax技术--考试计时并自动提交试卷
- 第十四周项目二两个成员的类模板——1
- 【8】机器学习之语音识别:隐马尔科夫模型
- FL安装Git步骤
- windows下cmd命令提示符下让程序后台运行命令