64,635
社区成员
发帖
与我相关
我的任务
分享
#include "stdafx.h"
#include <iostream>
#include <list>
#include <string>
#include <algorithm>
using namespace std;
struct student
{
int age;
char sex;
string number;
};
struct Cmp
{
bool operator()(const student stu1, const student stu2) const
{
return stu1.age < stu2.age;
}
};
void showMsg(const student *ptr)
{
cout<<ptr->age<<'\t'<<ptr->number<<'\t'<<ptr->sex<<endl;
}
int main()
{
list<student>lve;
student stu[3];
stu[0].age = 19;
stu[0].sex = 'm';
stu[0].number = "12435";
stu[1].age = 14;
stu[1].sex = 'm';
stu[1].number = "16465";
stu[2].age = 13;
stu[2].sex = 'f';
stu[2].number = "19545";
lve.push_back(stu[0]);
lve.push_back(stu[1]);
lve.push_back(stu[2]);
lve.sort(Cmp() );
typedef list<student>::const_iterator PTR;
for(PTR ptr = lve.begin(); ptr != lve.end(); ptr++)
{
showMsg( &(*ptr) );
}
return 0;
}
//不知道是不是这样的要求?
int comp(const void * p1, const void * p2)
{
return (*(int *)p1) - (*(int *)p2);
}