std :: min_element в C ++

Опубликовано: 31 Декабря, 2021

Для вычисления наименьшего из всех элементов в данном списке у нас есть std :: min, но что, если мы хотим найти наименьший не во всем списке, а в его подразделе . Для этой цели у нас есть std :: min_element в C ++.

std :: min_element определяется внутри файла заголовка <algorithm> и возвращает итератор, указывающий на элемент с наименьшим значением в диапазоне [первый, последний).

В отличие от std :: min, который можно использовать тремя способами, std :: min_element можно использовать двумя способами . Сравнение может выполняться либо с помощью оператора <(первая версия), либо с использованием предопределенной функции (вторая версия). Если более чем один элемент удовлетворяет условию наименьшего размера, итератор возвращает точки на первый из таких элементов.
Эти две версии определены, как указано ниже:

  1. Для сравнения элементов с помощью «<»:
    Синтаксис:
    шаблон 
    ForwardIterator min_element (ForwardIterator сначала, ForwardIterator последний);
    
    first: итератор вперед, указывающий на начало диапазона.
    last: итератор вперед, указывающий на конец диапазона.
    
    Возвращаемое значение: возвращает указатель на наименьшее 
    элемент в диапазоне, а если таких элементов несколько,
    затем он указывает на первую.
    Он указывает на последнее, если диапазон пуст.
    
    // C++ program to demonstrate the use of std::min_element
    #include <iostream>
    #include <algorithm>
    using namespace std;
    int main()
    {
    int v[] = { 9, 4, 7, 2, 5, 10, 11, 12, 1, 3, 6 };
    // Finding the minimum value between the third and the
    // fifth element
    int * i1;
    i1 = std::min_element(v + 2, v + 5);
    cout << *i1 << " " ;
    return 0;
    }

    Выход:

    2
    
  2. Для сравнения на основе предопределенной функции:

    Синтаксис:

    шаблон 
    ForwardIterator min_element (ForwardIterator сначала, ForwardIterator последний,
                                 Сравните комп);
    Здесь первый и последний такие же, как и в предыдущем случае.
    comp: двоичная функция, которая принимает два элемента 
    в диапазоне в качестве аргументов и возвращает значение, которое можно преобразовать в bool.
    Возвращенное значение указывает, был ли элемент передан первым. 
    аргумент считается меньше второго.
    Функция не должна изменять ни один из своих аргументов.
    Это может быть указатель на функцию или объект функции.
    
    Возвращаемое значение: возвращает указатель на наименьший элемент. 
    в диапазоне, а если таких элементов несколько,
    затем он указывает на первую.
    Он указывает на последнее, если диапазон пуст.
    
    // C++ program to demonstrate the use of std::min_element
    #include <iostream>
    #include <algorithm>
    using namespace std;
    // Defining the BinaryFunction
    bool comp( int a, int b)
    {
    return (a < b);
    }
    int main()
    {
    int v[] = { 9, 4, 7, 2, 5, 10, 11, 12, 1, 3, 6 };
    // Finding the minimum value between the third and the
    // ninth element
    int * i1;
    i1 = std::min_element(v + 2, v + 9, comp);
    cout << *i1 << " " ;
    return 0;
    }

    Выход:

    1
    

Статьи по Теме:

  • std :: max_element
  • std :: max
  • std :: min
  • std :: equal

Эта статья предоставлена Мригендрой Сингхом . Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью с помощью provide.geeksforgeeks.org или отправить ее по электронной почте на deposit@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.

Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
C++