#include <set>
#include <iostream>
using namespace std;
typedef struct _Record{
uint muid;
uint mshell;
uint mt;
_Record(uint uid, uint shell, uint t){
muid = uid;
mshell = shell;
mt = t;
}
}Record;
///
bool operator > (const Record & lrec, const Record & rrec) {
return ((lrec.mshell > rrec.mshell) || (lrec.mshell == rrec.mshell && lrec.mt >= rrec.mt));
}
ostream & operator << (ostream & os, const _Record & rec){
os << rec.muid << ", " << rec.mshell << ", " << rec.mt;
}
int main(){
multiset<Record, greater<Record> > recordset;
//
recordset.insert(Record(1, 40, 15));
recordset.insert(Record(1, 29, 15));
recordset.insert(Record(1, 30, 15));
recordset.insert(Record(1, 40, 90));
for (multiset<Record, greater<Record> >::iterator it = recordset.begin(); it != recordset.end(); ++it){
cout << *it << endl;
}
return 0;
}
[wangys@ok stl]$ ./multset_test
1, 40, 90
1, 40, 15
1, 30, 15
1, 29, 15