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;
}