multiset综合运用
2018-02-02 13:18
183 查看
multiset.h头文件
/*
作者:Jennifer
时间:2018年1月31日11:27:23
第一版
*/
#ifndef MULTISET_H_INCLUDED
#define MULTISET_H_INCLUDED
#include <iostream>
#include <set>
#include <string>
#include <stdlib.h>
using namespace std;
multiset<int> s;
void menu()
{
cout<<" ******欢迎了解set的用法****** "<<endl;
cout<<endl;
cout<<" 1.元素的插入 2.中序遍历"<<endl;;
cout<<" 3.反序遍历 4.元素的删除"<<endl;
cout<<" 5.元素的检索 6.退出"<<endl;
}
void shuchu()
{
multiset<int>::iterator it;
for(it=s.begin();it!=s.end();it++)
{
cout<<*it<<" ";
}
cout<<endl;
}
void insert()
{
int n,shuju;
cout<<"请输入想要插入元素的个数:"<<endl;
cin>>n;
cout<<"请输入"<<n<<"个整数元素(若为重复元素,重复计数):"<<endl;
for(int i=0;i<n;i++)
{
cin>>shuju;
s.insert(shuju);
}
shuchu();
}
void zhongxu()
{
shuchu();
}
void fanxu()
{
multiset<int>::reverse_iterator rit;
for(rit=s.rbegin();rit!=s.rend();rit++)
{
cout<<*rit<<" ";
}
cout<<endl;
}
void shanchu()
{
int place,i,from,to;
cout<<"1.输出某个固定位置的元素; 2.全部删除"<<endl;
cout<<"请输入你想操作的菜单编号:"<<endl;
cin>>i;
switch(i)
{
case 1:
{
cout<<"请输入想要删除元素的位置(第一个元素的位置为1):"<<endl;
cin>>place;
s.erase(place);
shuchu();
break;
}
case 2:
{
s.clear();
shuchu();
break;
}
default:
{
cout<<"输入有误!"<<endl;
break;
}
}
}
void index()
{
multiset<int>::iterator it;
int i;
cout<<"请输入想要检索的键值:"<<endl;
cin>>i;
it = s.find(i);
if(it!=s.end())
cout<<*it<<endl;
else
cout<<"没有找到"<<endl;
}
/*void zidingyi()
{
}
*/
void quit()
{
exit(1);
}
#endif // MULTISET_H_INCLUDED
main.cpp
#include "multiset.h"
int main()
{
int i;
while(1)
{
menu();
cout<<"请输入想实现的菜单编号:"<<endl;
cin>>i;
switch(i)
{
case 1:
{
insert();
break;
}
case 2:
{
zhongxu();
break;
}
case 3:
{
fanxu();
break;
}
case 4:
{
shanchu();
break;
}
case 5:
{
index();
break;
}
case 6:
{
quit();
break;
}
default:
{
cout<<"输入有误!"<<endl;
break;
}
}
}
return 0;
}
/*
作者:Jennifer
时间:2018年1月31日11:27:23
第一版
*/
#ifndef MULTISET_H_INCLUDED
#define MULTISET_H_INCLUDED
#include <iostream>
#include <set>
#include <string>
#include <stdlib.h>
using namespace std;
multiset<int> s;
void menu()
{
cout<<" ******欢迎了解set的用法****** "<<endl;
cout<<endl;
cout<<" 1.元素的插入 2.中序遍历"<<endl;;
cout<<" 3.反序遍历 4.元素的删除"<<endl;
cout<<" 5.元素的检索 6.退出"<<endl;
}
void shuchu()
{
multiset<int>::iterator it;
for(it=s.begin();it!=s.end();it++)
{
cout<<*it<<" ";
}
cout<<endl;
}
void insert()
{
int n,shuju;
cout<<"请输入想要插入元素的个数:"<<endl;
cin>>n;
cout<<"请输入"<<n<<"个整数元素(若为重复元素,重复计数):"<<endl;
for(int i=0;i<n;i++)
{
cin>>shuju;
s.insert(shuju);
}
shuchu();
}
void zhongxu()
{
shuchu();
}
void fanxu()
{
multiset<int>::reverse_iterator rit;
for(rit=s.rbegin();rit!=s.rend();rit++)
{
cout<<*rit<<" ";
}
cout<<endl;
}
void shanchu()
{
int place,i,from,to;
cout<<"1.输出某个固定位置的元素; 2.全部删除"<<endl;
cout<<"请输入你想操作的菜单编号:"<<endl;
cin>>i;
switch(i)
{
case 1:
{
cout<<"请输入想要删除元素的位置(第一个元素的位置为1):"<<endl;
cin>>place;
s.erase(place);
shuchu();
break;
}
case 2:
{
s.clear();
shuchu();
break;
}
default:
{
cout<<"输入有误!"<<endl;
break;
}
}
}
void index()
{
multiset<int>::iterator it;
int i;
cout<<"请输入想要检索的键值:"<<endl;
cin>>i;
it = s.find(i);
if(it!=s.end())
cout<<*it<<endl;
else
cout<<"没有找到"<<endl;
}
/*void zidingyi()
{
}
*/
void quit()
{
exit(1);
}
#endif // MULTISET_H_INCLUDED
main.cpp
#include "multiset.h"
int main()
{
int i;
while(1)
{
menu();
cout<<"请输入想实现的菜单编号:"<<endl;
cin>>i;
switch(i)
{
case 1:
{
insert();
break;
}
case 2:
{
zhongxu();
break;
}
case 3:
{
fanxu();
break;
}
case 4:
{
shanchu();
break;
}
case 5:
{
index();
break;
}
case 6:
{
quit();
break;
}
default:
{
cout<<"输入有误!"<<endl;
break;
}
}
}
return 0;
}
相关文章推荐
- 综合运用BroadcastReceiver和Service模拟下载
- Hibernate综合运用内部留言本(一)
- linux实战(十一)----shell监控服务器性能---综合运用
- Repeater嵌套,增删改查综合运用
- 思科模拟器实现HSRP以及NAT的端口复用综合运用
- 披头氏抠门篇—通道综合运用[2]
- 书店管理系统---Book模块(JavaSE综合运用(四))
- 《BI那点儿事》运用标准计分和离差——分析三国超一流统帅综合实力排名 绝对客观,数据说话
- cocos2d-x学习笔记(五)仿真树叶飘落效果的实现(精灵旋转、翻转、钟摆运动等综合运用)
- <转>cocos2d-x学习笔记(五)仿真树叶飘落效果的实现(精灵旋转、翻转、钟摆运动等综合运用)
- EXCEL vlookup和small 综合运用
- Android开发-Fragment JsonObject JsonArray 综合运用-AndroidStudio
- uva 540 Team Queue(queue与STL其他容器的综合运用)
- jquery ajax提交方法与serialize()的综合运用
- mysql 存储过程(临时表、循环、游标综合运用)
- Repeater嵌套,增删改查综合运用
- cocos2d-x学习笔记(五)仿真树叶飘落效果的实现(精灵旋转、翻转、钟摆运动等综合运用)
- linux实战(十)----shell监控tomcat服务是否正常----综合运用
- 博为峰Java技术文章 ——JavaSE Swing 按钮组件的综合运用
- 综合运用端口匹配、深度数据包检测、流量特征进行P2P流量识别