STL的list容器如何对结构体进行排序

链表list有自定义的sort排序函数,默认由大到小排序,但是只有能够比较大小的数值类型的内容才可以,如int,float,double等,对于结构体需要自己定义排序函数。

例如:

定义结构体:

typedef struct NewTreeElem

{

    long nNodeId; //节点id

    int nLevel; //层次

    double dSoIn; //社会影响

};

定义全局比较函数,注意必须是全局函数

比较

boolCompInfo(NewTreeElem first, NewTreeElem second)

{

    if(first.dSoIn <= second.dSoIn) //由大到小排序 //如果想要由小到大,改为大于即可

    {

       return false;

    }

    else

    {

       return true;

    }

}

定义链表:

list<NewTreeElem> listSocialInf

链表排序:

//对邻居按照社会影响由大到小排序

listSocialInf.sort(CompInfo);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值