A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.geeksforgeeks.org/cpp/stdmin_element-in-cpp/ below:

std::min_element in C++ - GeeksforGeeks

std::min_element in C++

Last Updated : 18 Oct, 2024

The std::min_element() in C++ is an STL algorithm that is used to find the minimum element in a given range. This range can be array, vector, list or any other container. It is defined inside the <algorithm> header file. In this article, we will learn about the std::min_element() in C++.

Example:

C++
// C++ program to illustrate the use of
// std::min_element()
#include <bits/stdc++.h>
using namespace std;

bool comp (int a, int b) {
    return a < b;
}

int main()
{
    vector<int> v = {2, 1, 17, 10};
    int arr[4] = {33, 87, 1, 71};
    int n = sizeof(arr) / sizeof(arr[0]);

    // Min element in vector
    cout << *min_element(v.begin(), v.end())
    	<< endl;

    // Min element in array
    cout << *max_element(v.begin(), v.end());

    return 0;
}
std::min_element() Syntax

std::min_element(first, last, comp);

Parameters Return Value More Examples of std::min_element()

We can find the minimum element of the given range using std::min_element().

Example 1: Find Minimum Element in Array C++
// C++ program to illustrate the use of 
// std::min_element() in array
#include <bits/stdc++.h>
using namespace std;

int main() {
    int arr[] = {33, 87, 1, 71};
    int n = sizeof(arr) / sizeof(arr[0]);
  
    // Finding the minimum element in array
    cout << *min_element(arr, arr + n);
    return 0;
}

Time Complexity: O(n), where n is the number of elements in array.
Auxiliary Space: O(1)

Example 2: Finding Minimum Element in Deque with Multiple Minimums

When there are multiple minimum elements present in the range, std::min_element() returns the iterator to the first minimum element.

C++
// C++ program to illustrate the use of 
// std::min_element() in deque
#include <bits/stdc++.h>
using namespace std;

int main() {
    deque<int> d = {33, 1, 87, 1, 71, 1};

    // Finding the minimum element in the deque
    auto min = min_element(d.begin(), d.end());
  	
  	// Finding the position
  	cout << "Index: " << distance(d.begin(), min);
    return 0;
}

Time Complexity: O(n), where n is the number of elements in deque.
Auxiliary Space: O(1)

Example 3: Find Minimum Element in Vector of User Defined Data Type

We have to use a custom comparator to determine how to compare user-defined data types based on any of their properties.

C++
// C++ Program to find the minimum element in 
// the vector of structure
#include <bits/stdc++.h>
using namespace std;

struct St {
    string name;
    int sno;
};

int main() {
  
    // Create a vector of structure
    vector<St> v = {{"Ashok", 11}, {"Deepak", 15}, 
                     {"Anmol", 23}, {"Vikas", 19}};

    // Find the minimum element in the vector of structure
    // based on the sno field
    St min = *min_element(v.begin(), v.end(),
                    [](const St &i, const St &j) { 
                        return i.sno < j.sno;
                    });

    cout << min.name << " " << min.sno;
    return 0;
}

Time Complexity: O(n), where n is the number of elements in the vector.
Auxiliary Space: O(1)

Working of std::min_element()

std::min_element() implements a linear search algorithm to find the smallest element in the range. It compares each element of the range one by one using the iterator/pointer provided to it as arguments. This is the reason why it gives O(n) linear time complexity.

std::min_element() is not specialized for sorted containers such as std::set, std::map, etc., and still compares all the elements of these containers to find the minimum element.



RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4