STL中list容器中sort函数用法

首先,声明一下,由于list基础结构是链表,不能直接用下标【】来直接取某一元素。

1、当list 中类型是int或者string类型时,直接调用sort函数,即

void ListSortTest1()
{
list<string> num;
num.push_back("10_8");
num.push_back("10_3");
num.push_back("10_2");
num.push_back("10_1");
num.push_back("10_9");
num.sort();
list<int> num1;
num1.push_back(98);
num1.push_back(90);
num1.push_back(45);
num1.push_back(10);
num1.push_back(102);
num1.sort();  

库函数int  string 类型中已经包含< 符号,这时候默认的是升序排列。当需要降序时,需要自定义compare函数,实现即sort(compare)

}

2、当list 的类型是结构体类型或者类类型时,需要自己写重载操作符<,排序实现即

class student
{
public:
int age;
student()
{}
student(int a)
{
this->age = a;
}
public:

*bool operator < (student b)
{
return this->age < b.age;
}

void ListSortTest()
{
list<student> num;
num.push_back(student(1));
num.push_back(student(5));
num.push_back(student(2));
num.push_back(student(6));
num.push_back(student(9));
num.sort();//必须重载 <操作符
// sort(num.begin(),num.end());
list<student>::iterator vi;
for (vi = num.begin(); vi != num.end(); vi++)
{
cout << vi->age << endl;
}
num.clear();
}

或者这样实现:

bool compare(const student &a, const student &b)
{
return a.age < b.age;
}

num.sort(compare);


  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值