要求:
编写一个学生结构体要求面向对象要求用到链表连接每个学生
代码
#include
#include
using namespace std;
class Student
{
friend istream& operator>>(istream&in,Student &ra);
friend bool cmp(Student &a, Student &b);
public:
Student(){}
Student(string n,int a,float s):name(n),age(a),score(s){}
void show()
{
cout< } string getName() { return name; } private: string name; int age; float score; }; istream& operator>>(istream&in,Student &ra) { in>>ra.name>>ra.age>>ra.score; return in; } bool cmp(Student &a, Student &b) { if(a.age return true; else return false; } //应用程序管理类 class Application { enum App_MODE { Mode_Add = 1, Mode_Show, Mode_Sort, Mode_Delete, }; public: int exec() { while(1) { int mode; cout<<"[1]add [2]show [3]sort [4]delete:"; cin>>mode; switch (mode) { case Mode_Add: { Student s; cout<<"name age score:"; cin>>s; //operator>>(cin,s); list.push_back(s); } break; case Mode_Show: { for(std::list { it->show(); } } break; case Mode_Sort: list.sort(cmp); break; case Mode_Delete: { cout<<"please input del name:"; string delName; cin>>delName; std::list for(it=list.begin(); it!=list.end(); it++) { if(it->getName() == delName) { //删除 cout<<"it->getName():"< list.erase(it); break; } } } break; } } } private: list }; int main() { Application app; return app.exec(); } 注意 list.sort(cmp);是调用bool cmp(Student &a, Student &b)这个函数,cmp是一个函数对象,等于回调这个函数,函数必须要bool cmp(const Type1 &a, const Type2 &b)这种格式 在排序函数中if(a.age 相关链接
发表评论