stl里list的sort()用法

  最近要做个按时间排序的东西,首先就想到了list里的sort函数。能用内置函数的尽量用内置函数,安全可靠。在用的过程中出现了几个问题,在这里总结一下。直接贴代码了,这我自己写的一个测试程序。vs2008里编译通过,这里要排序自己的类型,就写个小于号的重载。出现了这几个问题:

   1.GetObj()那个函数开始没有申明定义为const结果在重载小于号函数里总是报错,错误大概说不能将非const的指针转为const指针。后面在好友的提醒下恍然大悟。我传递的是一个const引用,当然只能调用const的函数了。看来前面对const的总结还是不够。

   2.第2个问题就是我编译运行后发现结果不对,有兴趣的同学可以看看。为什么不对呢,就是list<Obj*> lstObj这个不对。我想这是由于list内部的list不是申明为指针的,后来改list<obj>就对了。

   下面是第一版的代码,排序是不对的。

   再看第2版经过改进的。

 

   这下结果就对了,以后在用到其他stl函数的时候可以参考一下,别再走弯路。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值