码迷,mamicode.com
首页 > 其他好文 > 详细

常用STL使用指北

时间:2019-10-01 18:48:05      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:code   类型   turn   int   搜索   core   没有   tor   mamicode   

常用STL使用指北

set和multiset

set和multiset都是基于红黑树(显然是一个二叉搜索树)的STL。

定义

我们可以使用(multi)set<元素类型>名称来定义一个(multi)set

自定义排序

默认排序方式都是从小到大。因为结构体之间没有定义<,所以我们需要自定义一个比较函数。

如果元素不是结构体:

//自定义比较函数myComp,重载“()”操作符
struct myComp
{
    bool operator()(const int &a,const int &b)
    {
        return a > b;//从大到小排序
    }
}
set<int,myComp>s;
set<int,myComp>::iterator it;
 

如果元素是结构体:

struct Info
{
    string name;
    float score;
    //重载“<”操作符,自定义排序规则
    bool operator < (const Info &a) const
    {
        //按score从大到小排列
        return a.score<score;
    }
}
 
set<Info> s;
set<Info>::iterator it;

或者

//自定义比较函数myComp,重载“()”操作符
struct myComp
{
    bool operator()(const your_type &a,const your_type &b)
    {
        return a.data > b.data;//按照data从大到小排序
    }
}
set<your_type,myComp>s;
set<your_type,myComp>::iterator it;

技术图片

常用STL使用指北

标签:code   类型   turn   int   搜索   core   没有   tor   mamicode   

原文地址:https://www.cnblogs.com/GavinZheng/p/11615650.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!