您的位置:首页 > 其它

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

2013-07-24 10:04 363 查看
链表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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: