c++list容器中的反转和排序
函数原型:
reverse(); //反转链表
sort(); //链表排序
reverse,直接反转链表中的顺序,猜测就是直接将链表中的begin和end换了,毕竟本身就是双向循环列表,连指针都不用重连
sort,对链表进行排序,默认是从小到大,注意,这个sort不能使用标准算法中的sort,也就是sort(begin,end)的那种,因为这种sort是需要容器中的迭代器能够随机访问,所以在list中能使用了sort是他自己的内置函数,l1.sort()这种。实际上,其他迭代器不能随机访问的容器,一般也都是会提供一个默认的sort
这个内置的sort可以通过提供一个函数,或者仿函数,改变他的排序规则。函数中bool作为返回,返回判断大小的正误。仿函数传入的是容器中的两个数据,内部是排序规则,最后输出的是bool值
具体的实现非常的麻烦,以后再看
bool mycompare(int v1,int v2)
{
return v1>v2;
}
l1.sort(mycompare);
bool mycompare(people v1,people v2)
{
if(v1.mage != v2.mage)
{
return v1.mage < v2.mage;//升序排列
}else
{
return v1.mhight > v2.mhight;//降序排列
}
}
printlist(L);
L.sort(mycompare);//注意这里传输的是函数名,没有()
printlist(L);
30 160 b
30 180 c
30 140 d
30 110 e
80 120 f
40 170 g
70 130 h
10 150 a
30 180 c
30 160 b
30 140 d
30 110 e
40 170 g
70 130 h
80 120 f
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探