C++定義的函數使用不同的函數在2個容器中或容器中獲取最小和最大元素。但是也有一些函數可以使用單個函數獲取最小和最大元素,“minmax()”函數可以為我們完成此任務。此函數在“algorithm”頭文件中定義。本文將討論其實現和其他相關函數。
- minmax(a,b):此函數返回一對,其中第一個元素是兩個元素中的最小值,第二個元素是兩個元素中的最大值。
- minmax(元素數組):該函數的返回結果與第一個版本相似。唯一的區別是,在此版本中,可接受的參數是整數/字符串列表,其中可獲取最大值和最小值。當我們需要在列表中查找最大和最小元素而不進行排序時很有用。
// C++ code to demonstrate the working of minmax() #include<iostream> #include<algorithm> using namespace std; int main() { // declaring pair to catch the return value pair<int, int> mnmx; // Using minmax(a, b) mnmx = minmax(53, 23); // printing minimum and maximum values cout << "The minimum value obtained is:"; cout << mnmx.first; cout << "\nThe maximum value obtained is:"; cout << mnmx.second ; // Using minmax((array of elements) mnmx = minmax({2, 5, 1, 6, 3}); // printing minimum and maximum values. cout << "\n\nThe minimum value obtained is:"; cout << mnmx.first; cout << "\nThe maximum value obtained is:"; cout << mnmx.second; }
輸出:
The minimum value obtained is:23 The maximum value obtained is:53 The minimum value obtained is:1 The maximum value obtained is:6
- minmax_element():此函數的目的與上述函數相同,即查找最小和最大元素。但這在返回類型和接受的參數上有所不同。此函數接受開始和結束指針作為其參數,並用於查找範圍內的最大和最小元素。此函數返回對指針,其第一個元素指向範圍中最小元素的位置,第二個元素指向範圍中最大元素的位置。如果最小值大於1,則第一個元素指向第一個出現的元素。如果最大數目超過1,則第二個元素指向最後出現的元素。
// C++ code to demonstrate the working of minmax_element() #include<iostream> #include<algorithm> #include<vector> using namespace std; int main() { // initializing vector of integers vector<int> vi = { 5, 3, 4, 4, 3, 5, 3 }; // declaring pair pointer to catch the return value pair<vector<int>::iterator, vector<int>::iterator> mnmx; // using minmax_element() to find // minimum and maximum element // between 0th and 3rd number mnmx = minmax_element(vi.begin(), vi.begin() + 4); // printing position of minimum and maximum values. cout << "The minimum value position obtained is:"; cout << mnmx.first - vi.begin() << endl; cout << "The maximum value position obtained is:"; cout << mnmx.second - vi.begin() << endl; cout << endl; // using duplicated // prints 1 and 5 respectively mnmx = minmax_element(vi.begin(), vi.end()); // printing position of minimum and maximum values. cout << "The minimum value position obtained is:"; cout << mnmx.first - vi.begin() << endl; cout << "The maximum value position obtained is:"; cout << mnmx.second - vi.begin()<< endl; }
輸出:
The minimum value position obtained is:1 The maximum value position obtained is:0 The minimum value position obtained is:1 The maximum value position obtained is:5
相關用法
注:本文由純淨天空篩選整理自 std::minmax() and std::minmax_element() in C++ STL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。