set 又曰 集合
一波常见操作
#include<cstdio>
#include<set>
using namespace std;
int main(){
set <int > s;
s.insert(3);
s.insert(9);
s.insert(1);
s.insert(5);
s.insert(10);
s.erase(10);//删除
set<int >::iterator ite;
for(ite=s.begin() ;ite!=s.end() ;ite++){
printf("%d ",*ite);
}
return 0 ;
}
#include<set>
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
set<int >mm;
mm.insert(1);
cout<<*(mm.begin() )<<endl;
for(int i=0;i<5;i++){
mm.insert(i);
}
for(set<int >::iterator tt=mm.begin() ;tt!=mm.end() ;tt++){
cout<<*tt<<" ";
}
cout<<endl;
cout<<(mm.find(4)==mm.end() )<<endl;//返回0 说明4 在mm中
}
#include <iostream>
#include<set>
#include<algorithm>
#include<cstdio>
using namespace std;
void myprint(int i)
{
cout<<" "<<i;
}
void setbuild()
{
set<int >s1;//empty 由小到大
set<int ,greater<int> >s2;//大于比较器的
int arry[5]={2,3,4,5,6};
set<int> s3(arry,arry+5);
for_each(s3.begin (),s3.end(),myprint );//遍历函数
cout<<endl;
set<int ,greater<int> > s4(s3.begin(),s3.end());//s3初始s4
for_each(s4.begin (),s4.end(),myprint );
cout<<endl;
}
void setinsert()
{
set<int >s;
s.insert(1);
s.insert(2);
for_each(s.begin (),s.end(),myprint );
cout<<endl;
int arr[]={12,235,25,26,28};
s.insert(arr+1,arr+3);
for_each(s.begin (),s.end(),myprint );
cout<<endl;
}
void seterase()
{
set<int >s;
for(int i=1;i<=10;i++)
{
s.insert(i);
}
for_each(s.begin (),s.end(),myprint );
cout<<endl;
s.erase(9);
for_each(s.begin (),s.end(),myprint );
cout<<endl;
set<int>::iterator to,it=s.begin();
s.erase (it);
for_each(s.begin (),s.end(),myprint );
cout<<endl;
it=s.begin();
to=s.begin();
to++;
to++;
s.erase(it,to);
for_each(s.begin (),s.end(),myprint );
cout<<endl;
}
void setfind()
{
set<int> s;
s.insert(1);
s.insert(3);
s.insert(5);
if(s.find(2)==s.end())//返回迭代器或s.end();
{
printf("NOne\n");
}else printf("YY\n");
if(s.find(5)==s.end())//返回迭代器或s.end();
{
printf("NOne\n");
}else printf("YY\n");
}
void setcount()
{
/*set<int>s;
s.insert(1);
if(s.count (0)==1)
{
printf("yy\n");
}else
{
printf("no\n");
}
*/
multiset<int>ss;
ss.insert(1);
ss.insert(1);
ss.insert(1);
printf("%d\n",ss.count(1));
printf("%d\n",ss.count(3));
}
int main()
{
//由红黑树实现
//构造
//setbuild();
//插入
//setinsert();
//删除
//seterase();
//查找
//setfind();
//元素是否存在
setcount();
return 0;
}