max_element in C++

In this C++ tutorial, we are going to discuss the max_element in C++. To find the maximum element in a complete array or other container or to find the maximum element in a sub-part of an array, we can directly use max_element. (instead of using a loop to check for the largest element)

std::max_element is defined inside <algorithm> header file. It returns an iterator pointing to the largest element in a container.

If more than one element points to the largest element, then it returns an iterator to the first largest value in a container.

int* itr;

itr = max_element( arr.begin(), arr.end() );

Here, itr will point to the largest element in array arr.

Algorithm

  • Declare an array arr.
  • Declare an iterator ‘itr’ of pointer type.
  • Use max_element() which returns a pointer type value pointed by iterator itr.
  • Print the value of max element in range by *itr.

CPP Code implementation to find the maximum element in container using max_element()

#include<iostream>
#include<algorithm>

using namespace std;

 int main()
 
 {
     int arr[]={ 23, 43, 56, 87 , 92};
     
      int *itr ;
      
      itr = max_element(arr ,arr+5);
      
       cout<<*itr<<endl;
 }

OUTPUT

92

We can also use compare bool type to find the largest element based on our query.

CPP Code implementation of max_element() using third parameter compare of bool type

 #include<bits/stdc++.h>
 #include<algorithm>
 
 using namespace std;
 
 bool comp(int a, int b)
{
    return a<b;
}
 
  int main()
  
  {
      int arr[]={ 23, 43, 56, 87 , 92};
      
       int *itr ;
       
       itr = max_element(arr+1 ,arr+4, comp);
       
        cout<<*itr<<endl;
  }

OUTPUT

87

Here, we have used the range from arr+1 to arr+4 and the third parameter comp is bool type which returns true and false based on the given condition of a<b.

So, max_element makes code short and its an easy implementation for finding the largest element in a given range.

Leave a Reply

Your email address will not be published. Required fields are marked *