查找向量中的最大和最小元素| C ++ STL

编程挑战中的许多问题都需要在给定元素中找到最大和最小的地方。在本文中,我们讨论两种方法:一种是将max初始化为第一个元素,然后将向量从索引1遍历到size-1,然后将每个遍历的元素与max进行比较,如果它大于max,则更新max等于到元素。为了找到最小的元素,我们执行相同的步骤,即将min初始化为第一个元素,并且对于每个遍历的元素,将其与min进行比较(如果小于min,则更新min)。

另一种方法是分别使用库函数std :: max_element和std :: min_element查找最大和最小。这些方法在<algorithm>标头中定义。两种方法的时间复杂度都是线性的,即ta(n)

示例1:该示例显示了我们上面讨论的第一种方法的工作...

#include <bits/stdc++.h> 
using namespace std; 

//寻找最大  
int Findlarge(vector<int> myVector) 
{     
	//初始化最大元素 
	int max = myVector[0]; 

	//遍历矢量元素  
	for (int i = 1; i < myVector.size(); i++) 
		if (myVector[i] > max) 
			max = myVector[i]; 

	return max; 
} 

//寻找最小值
int FindMin(vector<int> myVector) 
{     
	//初始化最小元素 
	int min = myVector[0]; 

	//遍历矢量元素  
	for (int i = 1; i < myVector.size(); i++) 
		if (myVector[i] < min) 
			min = myVector[i]; 

	return min; 
} 

//主要功能
int main() { 
	vector<int> myVector;
	myVector.push_back(1);
	myVector.push_back(100);
	myVector.push_back(76);
	myVector.push_back(9);

	cout<<endl<<endl<<endl<<endl;

	cout<<"elements in Vector = ";
	for(int i=0;i<myVector.size();i++)
	{
		cout<<myVector[i]<<" ";
	}

	cout<<endl;

	cout << "Largest element given vector is = " << Findlarge(myVector)<<endl;
	cout << "smallest element given vector is = " << FindMin(myVector)<<endl; 
	return 0; 
}

输出结果

elements in Vector = 1 100 76 9 
Largest element given vector is = 100
smallest element given vector is = 1