#include <iostream>
#include <string>
using namespace std;
class Passenger
{
public :
Passenger( string, string, string) ;
~Passenger( ) { }
bool operator== ( const Passenger& ) const ;
bool operator< ( const Passenger& ) const ;
/* void read_from_file(list<Passenger>&, string);
void insert(list<Passenger>&, string, string, string);
void remove(list<Passenger>&, string, string, string);
bool check_reservation(list<Passenger>&, string, string);
void display_list(list<Passenger>&);
void save_to_file(list<Passenger>&, string, string, string);
*/
private :
string fname;
string lname;
string destination;
} ;
Passenger:: Passenger ( string first, string last, string dest)
{
fname = first;
lname = last;
destination = dest;
}
bool Passenger:: operator == ( const Passenger& p) const
{
return fname== p.fname && lname== p.lname ;
}
bool Passenger:: operator < ( const Passenger& p) const
{
return fname< p.fname || ( fname== p.fname && lname< p.lname ) ;
}
int main( ) {
Passenger p1( "Laure" ,"Martin" ,"Stockholm" ) ,
p2( "Laure" ,"Martin" ,"New York" ) ,
p3( "Laure" ,"Schmidt" ,"Copenhagen" ) ,
p4( "Christine" ,"Dufour" ,"Paris" ) ;
if ( p1== p2) cout << "Equal works when equal" << endl;
else cout << "Problem with equality 1" << endl;
if ( p1== p3) cout << "Problem with equlity 2" << endl;
else cout << "Equal works when partially different" << endl;
if ( p1== p4) cout << "Problem with equlity 4" << endl;
else cout << "Equal works when different" << endl;
if ( p1< p3) cout << "LowerThan works when partially lower than" << endl;
else cout << "Problem with lower than 1" << endl;
if ( p3< p1) cout << "Problem with lower than 1b" << endl;
else cout << "LowerThan works when partially bigger" << endl;
if ( p1< p2) cout << "Problem with lower than 2" << endl;
else cout << "LowerTHan works when equal" << endl;
if ( p1< p4) cout << "Problem with lower than 3" << endl;
else cout << "LowerTHan works when bigger" << endl;
if ( p4< p1) cout << "LowerTHan works when lower" << endl;
else cout << "Problem with lower than 4" << endl;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgUGFzc2VuZ2VyCnsKcHVibGljOgogICAgUGFzc2VuZ2VyKHN0cmluZywgc3RyaW5nLCBzdHJpbmcpOwogICAgflBhc3NlbmdlcigpIHt9CiAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUGFzc2VuZ2VyJikgY29uc3Q7CiAgICBib29sIG9wZXJhdG9yPChjb25zdCBQYXNzZW5nZXImKSBjb25zdDsKLyogICAgdm9pZCByZWFkX2Zyb21fZmlsZShsaXN0PFBhc3Nlbmdlcj4mLCBzdHJpbmcpOwogICAgdm9pZCBpbnNlcnQobGlzdDxQYXNzZW5nZXI+Jiwgc3RyaW5nLCBzdHJpbmcsIHN0cmluZyk7CiAgICB2b2lkIHJlbW92ZShsaXN0PFBhc3Nlbmdlcj4mLCBzdHJpbmcsIHN0cmluZywgc3RyaW5nKTsKICAgIGJvb2wgY2hlY2tfcmVzZXJ2YXRpb24obGlzdDxQYXNzZW5nZXI+Jiwgc3RyaW5nLCBzdHJpbmcpOwogICAgdm9pZCBkaXNwbGF5X2xpc3QobGlzdDxQYXNzZW5nZXI+Jik7CiAgICB2b2lkIHNhdmVfdG9fZmlsZShsaXN0PFBhc3Nlbmdlcj4mLCBzdHJpbmcsIHN0cmluZywgc3RyaW5nKTsKKi8KcHJpdmF0ZToKICAgIHN0cmluZyBmbmFtZTsKICAgIHN0cmluZyBsbmFtZTsKICAgIHN0cmluZyBkZXN0aW5hdGlvbjsKfTsKClBhc3Nlbmdlcjo6UGFzc2VuZ2VyKHN0cmluZyBmaXJzdCwgc3RyaW5nIGxhc3QsIHN0cmluZyBkZXN0KQp7CiAgICAgZm5hbWUgPSBmaXJzdDsKICAgICBsbmFtZSA9IGxhc3Q7CiAgICAgZGVzdGluYXRpb24gPSBkZXN0Owp9Cgpib29sIFBhc3Nlbmdlcjo6b3BlcmF0b3I9PShjb25zdCBQYXNzZW5nZXImIHApIGNvbnN0CnsKICAgIHJldHVybiBmbmFtZT09cC5mbmFtZSAmJiBsbmFtZT09cC5sbmFtZTsgCn0KCmJvb2wgUGFzc2VuZ2VyOjpvcGVyYXRvcjwoY29uc3QgUGFzc2VuZ2VyJiBwKSBjb25zdAp7CiAgICByZXR1cm4gZm5hbWU8cC5mbmFtZSB8fCAoZm5hbWU9PXAuZm5hbWUgJiYgbG5hbWU8cC5sbmFtZSk7IAp9CgppbnQgbWFpbigpIHsKCVBhc3NlbmdlciBwMSgiTGF1cmUiLCJNYXJ0aW4iLCJTdG9ja2hvbG0iKSwgCgkgICAgICBwMigiTGF1cmUiLCJNYXJ0aW4iLCJOZXcgWW9yayIpLCAKCSAgICAgIHAzKCJMYXVyZSIsIlNjaG1pZHQiLCJDb3BlbmhhZ2VuIiksIAoJICAgICAgcDQoIkNocmlzdGluZSIsIkR1Zm91ciIsIlBhcmlzIik7IAoJCglpZiAocDE9PXAyKSBjb3V0IDw8IkVxdWFsIHdvcmtzIHdoZW4gZXF1YWwiPDxlbmRsOyAKCWVsc2UgY291dCA8PCJQcm9ibGVtIHdpdGggZXF1YWxpdHkgMSI8PGVuZGw7IAoKCWlmIChwMT09cDMpIGNvdXQgPDwiUHJvYmxlbSB3aXRoIGVxdWxpdHkgMiI8PGVuZGw7IAoJZWxzZSBjb3V0IDw8IkVxdWFsIHdvcmtzIHdoZW4gcGFydGlhbGx5IGRpZmZlcmVudCI8PGVuZGw7IAoJCglpZiAocDE9PXA0KSBjb3V0IDw8IlByb2JsZW0gd2l0aCBlcXVsaXR5IDQiPDxlbmRsOyAKCWVsc2UgY291dCA8PCJFcXVhbCB3b3JrcyB3aGVuIGRpZmZlcmVudCI8PGVuZGw7IAoKCWlmIChwMTxwMykgY291dCA8PCJMb3dlclRoYW4gd29ya3Mgd2hlbiBwYXJ0aWFsbHkgbG93ZXIgdGhhbiI8PGVuZGw7IAoJZWxzZSBjb3V0IDw8IlByb2JsZW0gd2l0aCBsb3dlciB0aGFuIDEiPDxlbmRsOyAKCglpZiAocDM8cDEpIGNvdXQgPDwiUHJvYmxlbSB3aXRoIGxvd2VyIHRoYW4gMWIiPDxlbmRsOwoJZWxzZSBjb3V0IDw8Ikxvd2VyVGhhbiB3b3JrcyB3aGVuIHBhcnRpYWxseSBiaWdnZXIiPDxlbmRsOyAKCglpZiAocDE8cDIpIGNvdXQgPDwiUHJvYmxlbSB3aXRoIGxvd2VyIHRoYW4gMiI8PGVuZGw7IAoJZWxzZSBjb3V0IDw8Ikxvd2VyVEhhbiB3b3JrcyB3aGVuIGVxdWFsIjw8ZW5kbDsgCgkKCWlmIChwMTxwNCkgY291dCA8PCJQcm9ibGVtIHdpdGggbG93ZXIgdGhhbiAzIjw8ZW5kbDsgCgllbHNlIGNvdXQgPDwiTG93ZXJUSGFuIHdvcmtzIHdoZW4gYmlnZ2VyIjw8ZW5kbDsgCgoJaWYgKHA0PHAxKSBjb3V0IDw8Ikxvd2VyVEhhbiB3b3JrcyB3aGVuIGxvd2VyIjw8ZW5kbDsKCWVsc2UgY291dCA8PCJQcm9ibGVtIHdpdGggbG93ZXIgdGhhbiA0Ijw8ZW5kbDsgCgoJcmV0dXJuIDA7Cn0=