题解 | #日志排序#
日志排序
https://www.nowcoder.com/practice/0f64518fea254c0187ccf0ea05019672
#include <iostream>
#include <algorithm>
#include <sstream>
using namespace std;
const int N = 10010;
struct record{
string name;
string date;
string start_time;
double task_time;
string line;
}a[N];
bool cmp(record &a,record &b){
if(a.task_time != b.task_time)return a.task_time < b.task_time;
else{
if(a.date != b.date)return a.date < b.date;
else return a.start_time < b.start_time;
}
}
int main(){
string line;
int i = 0;
while(getline(cin,line)){
a[i].line = line;
stringstream ssin(line);
ssin>>a[i].name>>a[i].date>>a[i].start_time>>a[i].task_time;//不用管类型,ssin>>读入即可
i++;
}
sort(a,a + i,cmp);
for(int j = 0;j < i;j ++){
cout << a[j].line << endl;
}
return 0;
}
