#include #include #include using namespace std; class Employee { friend class EmployeeLessThan; public: Employee(const string& first, const string& last) : lastName_(last), firstName_(first) {} string getFirstName( ) const {return(firstName_);} string getLastName( ) const {return(lastName_);} private: string lastName_; string firstName_; }; class EmployeeLessThan { public: bool operator( )(const Employee& emp1, const Employee& emp2) const { if (emp1.lastName_ < emp2.lastName_) return(true); else if (emp1.lastName_ == emp2.lastName_) return(emp1.firstName_ < emp2.firstName_); else return(false); } }; int main( ) { map empMap; Employee emp1("Al", "Jones"),emp2("Jane", "Goodson"), emp3("Frank", "Spots"),emp4("George", "Gordon"); empMap[emp1] = "tester"; empMap[emp2] = "coder"; empMap[emp3] = "programmer"; empMap[emp4] = "developer"; for (map::const_iterator p = empMap.begin( ); p != empMap.end( ); ++p) { cout << p->first.getFirstName( ) << " " << p->first.getLastName( ) << " is " << p->second << endl; } }