realoj 106 book类 按要求排序

来源:互联网 发布:e世博网络博客 编辑:程序博客网 时间:2024/05/29 14:40
#include<iostream>#include<fstream>#include<sstream>#include<vector>#include<string>#include<stack>#include<cmath>#include<cstdlib>#include<algorithm>#include<functional>#include<ctime>#include<iomanip>#include<cstring>#include <cstdio>#include <map>#include <list>#include <set>#include <queue>#include <deque>#include <climits>using namespace std;struct book{    string name;    int year;    int price;};bool compareprice(const book &a,const book &b){    if(a.price!=b.price)    return a.price<b.price;    else if(a.name!=b.name) return a.name<b.name;    else return a.year<b.year;}bool compareyear(const book &a,const book &b){    if(a.year!=b.year)    return a.year<b.year;    else if(a.name!=b.name) return a.name<b.name;    else return a.price<b.price;}int main(){    ifstream cin("atest.txt");    int n;    vector<book> v;    while(cin>>n)    {        if(n==0) break;        v.clear();        book b;        string sorting;        for(int i=0;i<n;i++)         {             cin>>b.name>>b.year>>b.price;             v.push_back(b);         }         cin>>sorting;         if(sorting=="year")          sort(v.begin(),v.end(),compareyear);         if(sorting=="price")          sort(v.begin(),v.end(),compareprice);        for(int i=0;i<n;i++)          cout<<v[i].name<<"  "<<v[i].year<<"  "<<v[i].price<<endl;        cout<<endl;    }}

原创粉丝点击