阅读背景:

如何利用C++ vector的sort算法对元素是自定义类型进行排序

来源:互联网 


#include <vector>
#include <iostream>
#include <string>
#include <algorithm>    //sort函数头文件
 
using namespace std;
 
class Student {
public:
    int m_num;
    string m_name;
 
public:
 
    Student(int n,string name)
        :m_num(n),m_name(name)
    {
 
    }
 
    void display() const{
        cout << "姓名:" << m_name << " ,学号:" << m_num << endl;
    }
};
//自定义的比较函数,这里是对学号进行排序
static bool myCompare(const Student& a1,const Student& a2)
{
    return a1.m_num <= a2.m_num;
}
 
int main()
{
    //创建4个学生
    vector<Student> classOne;
    Student a1(2,"a");
    classOne.push_back(a1);
    Student a2(4,"b");
    classOne.push_back(a2);
    Student a3(5,"c");
    classOne.push_back(a3);
    Student a4(1,"d");
    classOne.push_back(a4);
 
    cout << "排序前:" << endl;
    vector<Student>::iterator it = classOne.begin();
    while (it != classOne.end())
    {
        it->display();
        ++it;
    }
 
    sort(classOne.begin(), classOne.end(),myCompare);
    cout << "排序后:" << endl;
    it = classOne.begin();
    while (it != classOne.end())
    {
        it->display();
        ++it;
    }
    return 0;
}#include <vector>
#include <iostr



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: