Define a Rectangle class that provides getLength and getWidth. Using the findMax routines in Figure 1.25, write a main that creates an array of Rectangle and finds the largest Rectangle first on the basis of area and then on the basis of perimeter. Figure 1.25 1 // Generic findMax, with a function object, C++ style. 2 // Precondition: a.size( ) > 0. 3 template 4 const Object & findMax( const vector & arr, Comparator isLessThan ) 5 { 6 int maxIndex = 0; 7 8 for( int i = 1; i < arr.size( ); ++i ) 9 if( isLessThan( arr[ maxIndex ], arr[ i ] ) ) 10 maxIndex = i; 11 12 return arr[ maxIndex ]; 13 } 14 15 // Generic findMax, using default ordering. 16 #include 17 template 18 const Object & findMax( const vector & arr ) 19 { 20 return findMax( arr, less{ } ); 21 } 22 23 class CaseInsensitiveCompare 24 { 25 public: 26 bool operator( )( const string & lhs, const string & rhs ) const 27 { return strcasecmp( lhs.c_str( ), rhs.c_str( ) ) < 0; } 28 }; 29 30 int main( ) 31 { 32 vector arr = { "ZEBRA", "alligator", "crocodile" }; 33 34 cout << findMax( arr, CaseInsensitiveCompare{ } ) << endl; 35 cout << findMax( arr ) << endl; 36 37 return 0; 38 }

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

Define a Rectangle class that provides getLength and getWidth. Using the findMax routines in Figure 1.25, write a main that creates an array of Rectangle and finds the largest Rectangle first on the basis of area and then on the basis of perimeter.

Figure 1.25

1 // Generic findMax, with a function object, C++ style.
2 // Precondition: a.size( ) > 0.
3 template <typename Object, typename Comparator>
4 const Object & findMax( const vector<Object> & arr, Comparator isLessThan )
5 {
6 int maxIndex = 0;
7
8 for( int i = 1; i < arr.size( ); ++i )
9 if( isLessThan( arr[ maxIndex ], arr[ i ] ) )
10 maxIndex = i;
11
12 return arr[ maxIndex ];
13 }
14
15 // Generic findMax, using default ordering.
16 #include <functional>
17 template <typename Object>
18 const Object & findMax( const vector<Object> & arr )
19 {
20 return findMax( arr, less<Object>{ } );
21 }
22
23 class CaseInsensitiveCompare
24 {
25 public:
26 bool operator( )( const string & lhs, const string & rhs ) const
27 { return strcasecmp( lhs.c_str( ), rhs.c_str( ) ) < 0; }
28 };
29
30 int main( )
31 {
32 vector<string> arr = { "ZEBRA", "alligator", "crocodile" };
33
34 cout << findMax( arr, CaseInsensitiveCompare{ } ) << endl;
35 cout << findMax( arr ) << endl;
36
37 return 0;
38 }

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 1 images

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY