返回顶部

收藏

C++ STL Set 快速入门

更多

Set

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

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

二 、示例代码

    #include <iostream>  
    #include <iterator>  
    #include <algorithm>  
    #include <set>  
    using namespace std;  
    struct classcomp     
    {    
        bool operator()(const char&amp; lhs,const char&amp; 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;  
    }  

标签:c/c++

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. hev 发表 2017-10-19 15:56:11 FSH – 助你接入私有网络中的 Linux 终端
  2. gonwan 发表 2015-04-15 08:03:07 Database Access Layer in C++
  3. gonwan 发表 2015-12-28 08:41:13 Basic Usage of Boost MultiIndex Containers
  4. gonwan 发表 2016-01-19 03:37:54 Coroutines in C++/Boost
  5. Haoxiang Li 发表 2017-10-25 20:29:02 MXNet C++ Deployment
  6. yuer 发表 2017-10-20 07:52:47 基于leveldb的持久消息队列SDK
  7. yuer 发表 2017-10-07 07:51:32 c++11完美转发
  8. 博主 发表 2016-09-03 00:00:00 C++编译期类型信息的利用
  9. yuer 发表 2017-09-06 03:03:29 libcurl访问unix socket
  10. yuer 发表 2017-09-07 08:14:58 valgrind检测php扩展的warning
  11. yuer 发表 2017-09-08 03:48:33 PHP7扩展开发教程[12] – 如何抛出错误和异常?
  12. yuer 发表 2017-09-26 05:09:25 基于leveldb谈谈MVCC多版本控制

发表评论