STL中的自定义排序

Posted theda

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STL中的自定义排序相关的知识,希望对你有一定的参考价值。

一 链表list的自定义排序

  如何实现链表保存学生对象,包括名字(string)和学号(int),按照学号升序排序?

//list的sort

#include<bits/stdc++.h>
using namespace std;
class stu
{
public:
    string name;
    int number;
    stu(int i,string s)
    {
        name=s;
        number=i;
    }
    void print()
    {
        cout<<number<<" "<<name<<endl;
    }
};
struct cmp
{
    bool operator()(stu & A,stu &B)
    {
        return A.number<B.number;
    }
};
int main()
{
    stu X(1,"X");
    stu Y(2,"Y");
    stu Z(3,"Z");
    list<stu>V;
    V.push_back(X);
    V.push_back(Y);
    V.push_back(Z);
    //sort(V.begin(),V.end(),cmp());
    V.sort(cmp());
    list<stu>::iterator i;
    for(i=V.begin();i!=V.end();i++)
    {
        cout<<(i->number)<<" "<<(i->name)<<endl;
        //i->print();
    }
}

 

以上是关于STL中的自定义排序的主要内容,如果未能解决你的问题,请参考以下文章

力扣347. 前 K 个高频元素与C++stl优先队列(大小根堆)的自定义排序用法总结

C++ STL中SORT的自定义比较函数?

具有获取 json 值的片段中的自定义适配器

片段中的自定义列表适配器

片段中的自定义列表视图。未找到布局

Three.js 中的自定义纹理着色器