# min

Categories: algorithms, utilities | Component type: function

### Prototype

`Min` is an overloaded name; there are actually two `min` functions.

    template <class T> const T& min(const T& a, const T& b);

    template <class T, class BinaryPredicate>
    const T& min(const T& a, const T& b, BinaryPredicate comp);

### Description

`Min` returns the lesser of its two arguments; it returns the first argument if neither is less than the other.

The two versions of `min` differ in how they define whether one element is less than another. The first version compares objects using `operator<`, and the second compares objects using the function object `comp`.

### Definition

Defined in the standard header algorithm, and in the nonstandard backward-compatibility header algo.h.

### Requirements on types

For the first version:

- `T` is a model of LessThan Comparable.

For the second version:

- `BinaryPredicate` is a model of Binary Predicate.
- `T` is convertible to `BinaryPredicate`'s first argument type and to its second argument type.

### Preconditions

### Complexity

### Example

    const int x = min(3, 9);
    assert(x == 3);

### Notes

### See also

`max`, `min_element`, `max_element`, LessThan Comparable

Copyright © 1999 Silicon Graphics, Inc. All Rights Reserved. TrademarkInformation