排序之set集合排序
来源:互联网 发布:平板电脑软件大全 编辑:程序博客网 时间:2024/06/16 09:01
#include <iostream>#include <string>#include <set>#include <sstream>using namespace std;set<int> dict;int main(){ int num;cout<<"输入一串数字,以0结束"<<endl;while (cin>>num,num){dict.insert(num);}cout<<"排序之后"<<endl;for (set<int>::iterator it = dict.begin();it != dict.end();it++){cout<<*it<<" ";} cout<<endl;return 0;}
升序排列
#include <iostream> //对于重复的数字将会忽略#include <string>#include <set>#include <sstream>using namespace std;set<int> dict;int main(){ int num,flag=1;cout<<"输入一串数字,以0结束"<<endl;while (cin>>num,num){dict.insert(num);}cout<<"排序之后"<<endl;for (set<int>::iterator it = dict.end();it != dict.begin();it--){if(flag) it--,flag=0;cout<<*it<<" ";} cout<<*(dict.begin());cout<<endl;return 0;}
降序排列
也可以用反向迭代
#include <iostream>#include <string>#include <set>#include <sstream>using namespace std;set<int> dict;int main(){ int num;cout<<"输入一串数字,以0结束"<<endl;while (cin>>num,num){dict.insert(num);}cout<<"排序之后"<<endl;for (set<int>::reverse_iterator it = dict.rbegin();it != dict.rend();it++){cout<<*it<<" ";} cout<<endl<<dict.size()<<endl;//验证重复元素不会插入 return 0;}或者自定义比较规则
1.元素不是结构体
#include <iostream>#include <string>#include <set>#include <sstream>using namespace std;struct mycom{bool operator () (const int &a,const int &b) //重载(){if (a != b){return a>b;}elsereturn a>b;}};int main(){ int num;set<int,mycom> dict;cout<<"输入一串数字,以0结束"<<endl;while (cin>>num,num){dict.insert(num);}cout<<"排序之后"<<endl;for (set<int,mycom>::iterator it = dict.begin();it != dict.end();it++){cout<<*it<<" ";}cout<<endl<<dict.size()<<endl;//验证重复元素不会插入 return 0;}2.元素是结构体
#include<iostream>#include<set>#include<string>using namespace std;struct Info{string name;double score;bool operator < (const Info &a) const // 重载“<”操作符,自定义排序规则{//按score由大到小排序。如果要由小到大排序,使用“>”即可。return a.score < score;}};int main(){set<Info> s;Info info;//插入三个元素info.name = "Jack";info.score = 80;s.insert(info);info.name = "Tom";info.score = 99;s.insert(info);info.name = "Steaven";info.score = 60;s.insert(info);set<Info>::iterator it;for(it = s.begin(); it != s.end(); it++)cout << (*it).name << " : " << (*it).score << endl; return 0;}
删除与清空
#include <iostream>#include <string>#include <set>#include <sstream>using namespace std;set<int> dict;int main(){ int num;cout<<"输入一串数字,以0结束"<<endl;while (cin>>num,num){dict.insert(num);}cout<<"(升序)排序之后"<<endl;for (set<int>::iterator it = dict.begin();it != dict.end();it++){cout<<*it<<" ";} cout<<endl;cout<<"需要删除的数字为 ";cin>>num;dict.erase(num); for (set<int>::reverse_iterator rit = dict.rbegin();rit != dict.rend();rit++){cout<<*rit<<" ";} cout<<endl<<"清空之后 ";dict.clear();cout<<endl<<dict.size()<<endl;//验证重复元素不会插入 return 0;}
查找
#include <iostream>#include <string>#include <set>#include <sstream>using namespace std;set<int> dict;int main(){ int num;cout<<"输入一串数字,以0结束"<<endl;while (cin>>num,num){dict.insert(num);}cout<<"(升序)排序之后"<<endl;for (set<int>::iterator it = dict.begin();it != dict.end();it++){cout<<*it<<" ";} cout<<endl; cout<<"查找的数为 ";cin>>num;it = dict.find(num); if(it == dict.end())cout<<"not found";elsecout<<*it;cout<<endl<<dict.size()<<endl;//验证重复元素不会插入 return 0;}
1 0
- 排序之set集合排序
- set集合实现排序
- set集合排序
- Hibernate Set集合排序
- java set集合排序
- set集合的排序
- Set集合排序
- java set集合排序
- Hibernate中Set集合排序
- Java排序之集合排序
- Java 之集合排序
- 针对hibernate中 Set 集合 的排序
- hashCode与equals Set 集合排序
- 对hibernate的set集合进行排序
- java的set集合简单排序
- 对hibernate的set集合进行排序
- 对hibernate的set集合进行排序
- Sort Set排序集合类型操作命令
- redhat 中文乱码
- Nmap学习笔记
- Android中的Handler机制
- [android]_[初级]_[现有联系人中新增属性:如添加Phone Number, Email, address,Im ,Website, Organization, nickname,note]
- 关于如何用数组存储另一个数组的排序索引
- 排序之set集合排序
- maven学习笔记-03-maven安装篇
- hdu 3652
- 时间序列基础包xts
- android Handler 机制研究学习笔记
- 刘强东哈佛演讲
- 游承超:手机钢化玻璃膜平边与弧边的区别(1P)
- keepalived+redis 实现高可用的自动故障转移failover
- Android Handler机制