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

 我来答
就烦条0o
2018-05-28 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46517
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
链表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);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式