set公共函数

来源:互联网 发布:wps数据有效性 编辑:程序博客网 时间:2024/06/05 07:28
#include <iostream>#include <set>using namespace std;bool fncmp(const int&i,const int &j){return i<j;}struct classcmp{public:    bool operator()(const int&i,const int&j)const    {return i<j;}};int main(){    //begin    cout<<"--begin"<<endl;    int array[]={12,354,55,677,33};    set<int> beginset(array,array+5);    cout<<"beginset:";    set<int>::iterator beginsetit;    for(beginsetit=beginset.begin();        beginsetit!=beginset.end();        ++beginsetit)        cout<<" "<<*beginsetit;    cout<<endl;    //clear    cout<<"--clear"<<endl;    set<int>clearset;    clearset.insert(1);    clearset.insert(12);    clearset.insert(13);    cout<<"before clearset:";    for(set<int>::iterator it=clearset.begin();        it!=clearset.end();++it)        cout<<" "<<*it;    cout<<endl;    clearset.clear();    clearset.insert(22);    clearset.insert(332);    clearset.insert(44422);    cout<<"after clearset:";    for(set<int>::iterator it=clearset.begin();        it!=clearset.end();++it)        cout<<" "<<*it;    cout<<endl;    //count    cout<<"--count"<<endl;    set<int>countset;    for(int i=1;i<5;++i)        countset.insert(i*2);    for(int i=0;i<10;++i)    {        cout<<i;        if(countset.count(i)==1)            cout<<" is an member of set."<<endl;        else            cout<<"is not an member of set."<<endl;    }    //empty    cout<<"--empty"<<endl;    set<int>emptyset;    emptyset.insert(10);    emptyset.insert(20);    emptyset.insert(30);    cout<<"empty:";    while(!emptyset.empty())    {        cout<<" "<<*emptyset.begin();        emptyset.erase(emptyset.begin());    }    cout<<endl<<"emptyset size:"<<emptyset.size()<<endl;    //equal_range    cout<<"--equal_range"<<endl;    set<int>equal_rangeset;    cout<<"equal_rangeset:";    for(int i=1;i<10;++i)    {        cout<<" "<<i*3;        equal_rangeset.insert(i*3);    }    cout<<endl;    pair<set<int>::iterator,set<int>::iterator>equal_rangepair;    equal_rangepair=equal_rangeset.equal_range(9);    cout<<"lower bound points to:"<<*equal_rangepair.first<<endl;    cout<<"upper bound points to:"<<*equal_rangepair.second<<endl;    //earse    cout<<"--earse"<<endl;    set<int>eraseset;    for(int i=0;i<10;++i)        eraseset.insert(i*10);//0 10 20 30 40 50 60 70 80 90    set<int>::iterator eraseit=eraseset.begin();    eraseit++;    eraseset.erase(eraseit);//erase 10    eraseset.erase(50);//erase 50    eraseit=eraseset.find(70);    eraseset.erase(eraseit,eraseset.end());//erase(70 80 90)    cout<<"eraseset:";    for(eraseit=eraseset.begin();        eraseit!=eraseset.end();        ++eraseit)        cout<<" "<<*eraseit;    cout<<endl;    //insert    cout<<"--insert"<<endl;    set<int>insertset;    for(int i=1;i<=5;++i)        insertset.insert(i*10);//10 20 30 40 50    pair<set<int>::iterator,bool>insertpair;    insertpair=insertset.insert(20);    set<int>::iterator insertsetit;    if(insertpair.second==false)        insertsetit=insertpair.first;// it points to 20    insertset.insert(insertsetit,25);  // max efficiency inserting    insertset.insert(insertsetit,24);  // max efficiency inserting    insertset.insert(insertsetit,26);  //no max efficiency inserting    cout<<"insertsetit:"<<*insertsetit<<endl;    cout<<"insertset:";    for(insertsetit=insertset.begin();        insertsetit!=insertset.end();        ++insertsetit)        cout<<" "<<*insertsetit;    cout<<endl;    //compare    cout<<"--compare"<<endl;    set<int>compareset;    set<int>::key_compare comparefun=compareset.key_comp();    set<int>::iterator compareit;    for(int i=0;i<5;++i)        compareset.insert(i);    cout<<"compareset:";    int height=*compareset.end();    compareit=compareset.begin();    while(comparefun(*compareit++,height))        cout<<" "<<*compareit;    cout<<endl;    //lower_bound    cout<<"--lower_bound"<<endl;    set<int>boundset;    set<int>::iterator it,lowerit,upperit;    for(int i=0;i<10;++i)        boundset.insert(i*10);    lowerit=boundset.lower_bound(20);    cout<<"lowerit:"<<*lowerit<<endl;//20    upperit=boundset.upper_bound(60);    cout<<"upperit:"<<*upperit<<endl;//70    boundset.erase(lowerit,upperit);//0 10 70 80 90    cout<<"boundset:";    for(it=boundset.begin();        it!=boundset.end();        ++it)        cout<<" "<<*it;    cout<<endl;    //operate    cout<<"--operate="<<endl;    set<int>opset1,opset2;    int oparray[]={10,44,666,312};    opset1.insert(oparray,oparray+4);    opset2=opset1;    opset1=set<int>();    cout<<"opset1 size:"<<opset1.size()<<endl;    cout<<"opset2 size:"<<opset2.size()<<endl;    //rbegin    cout<<"--rbegin"<<endl;    set<int>rbeginset;    int rbeginarray[]={12,34,44,666};    rbeginset.insert(rbeginarray,rbeginarray+4);    cout<<"rbeginset:";    for(set<int>::iterator it=rbeginset.begin();        it!=rbeginset.end();        ++it)        cout<<" "<<*it;    cout<<endl;    cout<<"reverse rbeginset:";    for(set<int>::reverse_iterator it=rbeginset.rbegin();        it!=rbeginset.rend();        ++it)        cout<<" "<<*it;    cout<<endl;    //set    set<int>firstset;    int setarray[]={10,230,44,66666,1};    set<int>secondset(setarray,setarray+5);    set<int>thirdset(secondset);    set<int>fourth(secondset.begin(),secondset.end());    set<int,classcmp>fifthset;    bool (*fn_t)(const int&,const int&)=fncmp;    set<int,bool(*)(const int&,const int&)>sixthset(fn_t);    //    return 0;}

原创粉丝点击