Table of Contents

## Introduction

Hey there! Today in this tutorial we are going to understand the working as well as the use of **the std::max() function in C++**.

## The std::max() function

The `std::max()`

function in C++ is a pre-defined function used to find the maximum of two constant values(**int**, **float**, **char**, **string**, etc,). It is defined in the `<algorithm>`

header file. The `max()`

function declaration in C++ is given below.

std::max(const T& a, const T& b, Compare comp);

Here, `a`

and `b`

are the two values. And `comp`

(optional) is the comparing function on the basis of which the comparison is to be done.

The `max()`

function can also be used for finding the maximum value from an `initializer list`

with an optional `comp`

function. The syntax is given below. **Note:** this is only valid for **C++11** and above versions.

std::max( std::initializer_list<T> ilist, Compare comp );

## Finding the Maximum values with C++ max() function

So now that we have familiarized ourselves with the `max()`

function, let us get into some examples.

#include<iostream> #include<algorithm> using namespace std; int main() { int a=10, b=20, max; // max stores the maximum integer max = std::max(a, b); cout<<"The max number is:"<<max; return 0; }

**Output:**

The max number is: 20

Here, the `max()`

function returns the maximum value among the passed `a`

and `b`

variables i.e. **20** as expected.

As we mentioned earlier, the function also works for `initializer lists`

. Have a look at the example given below.

#include<iostream> #include<algorithm> using namespace std; int main() { // with initialiser list cout<<max({ 12, 13, 45, 78, 32}); return 0; }

**Output:**

78

We get our desired maximum element **78**.

## C++ max() function with comp function

The `comp`

(optional) parameter has to be a function that defines the comparison for the values to find the maximum one. This function further needs to return a `bool`

value on the basis of the provided condition.

So, we can either define a `lambda function`

or a user-defined `bool`

function to accomplish this task.

### 1. comp as lambda function

A lambda function is a one-line user-defined function introduced from **C++11** and later versions.

Look at the example given below carefully.

#include<iostream> #include<algorithm> using namespace std; int main() { int a=5, b=7; // with lambda function cout<<max(a, b, [](int a, int b) { return (a < b);}); return 0; }

**Output:**

7

Here, we have defined a `lambda`

function that takes two arguments `a`

and `b`

and checks whether the first one is smaller than the other. It returns a boolean value(`True`

or `False`

).

### 2. comp as bool function

Similarly, we can also define a `bool`

function to compare two arguments.

#include<iostream> #include<algorithm> using namespace std; bool Myfunc(int a, int b) { return (a<b); } int main() { int a=118, b=52; cout<<max(a, b, Myfunc); return 0; }

**Output:**

118

As you can see, we get our desired output(**118**)

## Conclusion

That’s it for today. Hope you had a clear understanding of the **std::max() function in C++.**

For any related questions, feel free to use the comments below.

## References

- std::max() – CPP reference,
- Lambda functions in C++ – Microsoft Documentation,
- C++ Tutorial.