C++ STL Set 快速入门

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

Set

一 、简介

set是一个集合,其中元素有序,排序的方式按照指定的方式来排序,不指定则默认按照升序排列
set中元素不可以相同;比较两个set相同,他们的排序方式和元素都要相同;不能直接改变元素的值,需要先删除,再插入。

set经常用来保存一组数据,他们获得和使用的顺序无关紧要,只需要考虑是否是在集合中即可。

二 、示例代码

    #include <iostream>  
    #include <iterator>  
    #include <algorithm>  
    #include <set>  
    using namespace std;  
    struct classcomp     
    {    
        bool operator()(const char& lhs,const char& rhs)    
        {    
            return lhs > rhs;    
        }    
    };   
    char array[] = {'e','f','g'};  
    int _tmain(int argc, _TCHAR* argv[])  
    {  
        set<char,classcomp> myset;  
        myset.insert('a');  
        myset.insert('b');  
        myset.insert('c');  
        copy(myset.begin(),myset.end(),ostream_iterator<char>(cout," "));  
        cout<<endl;  
        cout<<myset.insert('d').second<<endl;  
        //Now a b c d  
          
        myset.insert(array,array+3);  
        copy(myset.begin(),myset.end(),ostream_iterator<char>(cout," "));  
        cout<<endl;  
        //Now g f e d c b a  
        myset.erase('d');  
        //Now g f e c b a  
        myset.erase(myset.begin());  
        //Now f e c b a   
        copy(myset.begin(),myset.end(),ostream_iterator<char>(cout," "));  
        cout<<endl;  
        //myset.clear();//清空set  
        set<char,classcomp>::iterator it= myset.begin();  
        if ((it = myset.find('k')) == myset.end())  
        {  
            cout<<"Can not find K in this set"<<endl;  
        }  
        cout<<"Current size is :"<<myset.size()<<endl;  
    }