stl::list自带的sort算法

        STL中的list容器貌似不支持标准的sort方法,貌似只有能够提供随机访问的容器(例如vector)才支持stl各种快速排序算法,为此,编写stl的天才们:)为list自身内部实现了sort的方法,并提供sort接口.

        如果你用list来储存类结构的话,可以为你的类重载<(小于)运算符,那样的话你可以用类似以下方便的方法来为你的链表排序:

list<MyClass> mylist;
mylist.sort();

        当然,大多数情况我都更常用list来储存类指针,除非你能确保你创建完链表后不改变链表节点的内容(list会创建并复制需要加入链表的类到一个新的类,对之前类的内容的任何修改在加入链表后将不会自动更新到链表节点中),...那样的话可以用像以下的方法来实现排序:

list<MyClass*> mylist;
struct MyListSort : public binary_function <MyClass *, MyClass *, bool> 
{
	bool operator()(MyClass* _Left, MyClass* _Right) const
	{
		if(_Left->size > _Right->size)
			return  true;
		return false;
	}
};

//....
MyListSort mls;
mylist.sort(mls);
//...


转载于:https://my.oschina.net/gal/blog/200200

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值