#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
class Sales
{
public:
string customer_name;
string category;
string aircraft;
string day;
string time;
int week;
int ticket_price;
string payment;
public:
Sales () {
customer_name = "";
category = "";
aircraft = "";
day = "";
time = "";
week = 0;
ticket_price = 0;
payment = "";
}
Sales (string f_cat, string airc, string xday, string xtime, int xweek) {
customer_name = "";
category = f_cat;
aircraft = airc;
day = xday;
time = xtime;
week = xweek;
ticket_price = 0;
payment = "";
}
friend ostream &operator<<(ostream &os, const Sales &s){
os << s.customer_name << ":" << s.category;
return os;
}
bool operator<( const Sales& rhs) const{
if (customer_name < rhs.customer_name ) return true;
if (category < rhs.category ) return true;
return false;
}
};
using namespace std;
int main(int argc, char**argv) {
vector <Sales> v;
Sales a,b,c;
a.customer_name = "HSBC"; a.category = "ASIA";
b.customer_name = "BANK OF AMERICA"; b.category = "US";
c.customer_name = "JP MORGAN CHASE"; c.category = "US";
v.push_back(a);
v.push_back(b);
v.push_back(c);
for( auto &i : v){ std::cout << i << endl; };
std::sort(v.begin(), v.end());
cout << endl;
for( auto &i : v){ std::cout << i << endl; };
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIFNhbGVzCnsKICAgcHVibGljOgogICAgICBzdHJpbmcgY3VzdG9tZXJfbmFtZTsKICAgICAgc3RyaW5nIGNhdGVnb3J5OwogICAgICBzdHJpbmcgYWlyY3JhZnQ7CiAgICAgIHN0cmluZyBkYXk7CiAgICAgIHN0cmluZyB0aW1lOwogICAgICBpbnQgd2VlazsKICAgICAgaW50IHRpY2tldF9wcmljZTsKICAgICAgc3RyaW5nIHBheW1lbnQ7CgogICBwdWJsaWM6CiAgICAgIFNhbGVzICgpIHsgCiAgICAgICAgIGN1c3RvbWVyX25hbWUgPSAiIjsKICAgICAgICAgY2F0ZWdvcnkgPSAiIjsKICAgICAgICAgYWlyY3JhZnQgPSAiIjsKICAgICAgICAgZGF5ID0gIiI7CiAgICAgICAgIHRpbWUgPSAiIjsKICAgICAgICAgd2VlayA9IDA7CiAgICAgICAgIHRpY2tldF9wcmljZSA9IDA7CiAgICAgICAgIHBheW1lbnQgPSAiIjsKICAgICAgfQoKICAgICAgU2FsZXMgKHN0cmluZyBmX2NhdCwgc3RyaW5nIGFpcmMsIHN0cmluZyB4ZGF5LCBzdHJpbmcgeHRpbWUsIGludCB4d2VlaykgewogICAgICAgICBjdXN0b21lcl9uYW1lID0gIiI7CiAgICAgICAgIGNhdGVnb3J5ID0gZl9jYXQ7CiAgICAgICAgIGFpcmNyYWZ0ID0gYWlyYzsKICAgICAgICAgZGF5ID0geGRheTsKICAgICAgICAgdGltZSA9IHh0aW1lOwogICAgICAgICB3ZWVrID0geHdlZWs7CiAgICAgICAgIHRpY2tldF9wcmljZSA9IDA7CiAgICAgICAgIHBheW1lbnQgPSAiIjsKICAgICAgfSAgCiAgICAgIAogICAgICBmcmllbmQgb3N0cmVhbSAmb3BlcmF0b3I8PChvc3RyZWFtICZvcywgY29uc3QgU2FsZXMgJnMpewogICAgICAgICAgb3MgPDwgcy5jdXN0b21lcl9uYW1lIDw8ICI6IiA8PCBzLmNhdGVnb3J5OwogICAgICAgICAgcmV0dXJuIG9zOwogICAgICB9CiAgICAgIAogICAgICAgIGJvb2wgb3BlcmF0b3I8KCBjb25zdCBTYWxlcyYgcmhzKSBjb25zdHsgCiAgICAgICAgICAgIGlmIChjdXN0b21lcl9uYW1lIDwgcmhzLmN1c3RvbWVyX25hbWUgKSByZXR1cm4gdHJ1ZTsgCiAgICAgICAgICAgIGlmIChjYXRlZ29yeSA8IHJocy5jYXRlZ29yeSApIHJldHVybiB0cnVlOyAKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgCiAgICAgIAp9OwoKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKmFyZ3YpIHsKICAKICAgIHZlY3RvciA8U2FsZXM+IHY7CiAgICBTYWxlcyBhLGIsYzsKICAgIGEuY3VzdG9tZXJfbmFtZSA9ICJIU0JDIjsgYS5jYXRlZ29yeSA9ICJBU0lBIjsKICAgIGIuY3VzdG9tZXJfbmFtZSA9ICJCQU5LIE9GIEFNRVJJQ0EiOyBiLmNhdGVnb3J5ID0gIlVTIjsKICAgIGMuY3VzdG9tZXJfbmFtZSA9ICJKUCBNT1JHQU4gQ0hBU0UiOyBjLmNhdGVnb3J5ID0gIlVTIjsKICAgIAogICAgdi5wdXNoX2JhY2soYSk7CiAgICB2LnB1c2hfYmFjayhiKTsKICAgIHYucHVzaF9iYWNrKGMpOwogICAgCiAgICBmb3IoIGF1dG8gJmkgOiB2KXsgc3RkOjpjb3V0IDw8IGkgPDwgZW5kbDsgfTsKICAgICAgICAKICAgIHN0ZDo6c29ydCh2LmJlZ2luKCksIHYuZW5kKCkpOwogICAgCiAgICBjb3V0IDw8IGVuZGw7CiAgICAKICAgIGZvciggYXV0byAmaSA6IHYpeyBzdGQ6OmNvdXQgPDwgaSA8PCBlbmRsOyB9OwogICAgCiAgICByZXR1cm4gMDsKfQ==