C++定义的函数使用不同的函数在2个容器中或容器中获取最小和最大元素。但是也有一些函数可以使用单个函数获取最小和最大元素,“ minmax() ”函数可以为我们完成此任务。该函数在“ algorithm ”头文件中定义。本文将讨论其实现和其他相关功能。
- minmax(a,b):此函数返回一对,其中第一个元素是两个元素中的最小值,第二个元素是两个元素中的最大值。
- minmax(元素数组):该函数返回的结果与第一个版本相似。唯一的不同是,在此版本中,接受的参数是整数/字符串的列表,其中获得了最大值和最小值。当我们需要在列表中查找最大和最小元素而不进行排序时很有用。
// C++ code to demonstrate the working of minmax() #include
#include using namespace std; int main() { // declaring pair to catch the return value pair 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
#include #include using namespace std; int main() { // initializing vector of integers vector vi = { 5, 3, 4, 4, 3, 5, 3 }; // declaring pair pointer to catch the return value pair ::iterator, vector ::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
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。