c++数组或vector容器求最大值最小值

可以用max_element()及min_element()函数,二者返回的都是迭代器或指针。

头文件:#include< algorithm > #include < vector >

1.求数组的最大值或最小值

例 a[]={1,2,3,4,5,6};

最大值:int maxValue = *max_element(a,a+6);

最小值:int minValue = *min_element(a,a+6);

#include<stdio.h>
#include<vector>
#include<algorithm>

using namespace std;

int main()
{
  int a[] = {10,22,11,23,12,11,16,17,19,30};

  int maxValue = *max_element(a,a+10);
  int minValue = *min_element(a,a+10);

  printf("maxValue = %d.\n",maxValue);
  printf("minValue = %d.\n",minValue);

  return 0;
}

2.求vector容器最大值和最小值

例 vector< int > vecec

最大值:int maxValue = *max_element(vec.begin(),vec.end());

最小值:int minValue = *min_element(vec.begin(),vec.end());

#include<stdio.h>
#include<vector>
#include<algorithm>

using namespace std;

int main()
{
   vector<int> vec;

   int v[] = {10,22,11,23,12,11,16,17,19,30};

   for( int ii=0;ii<10;ii++ )
   {
     vec.push_back(v[ii]);
   }

   int maxValue = *max_element(vec.begin(),vec.end());
   int minValue = *min_element(vec.begin(),vec.end());


   printf("maxValue = %d.\n",maxValue);
   printf("minValue = %d.\n",minValue);

  return 0;
}

3.最大值和最小值对应下标
1)vector容器

// 最大值下标
int maxPosition = max_element(v.begin(),v.end()) - v.begin(); 
// 最小值下标
int maxPosition = max_element(v.begin(),v.end()) - v.begin(); 

2)数组

// 最大值下标
int maxPosition = max_element(a,a+6) - a; 
// 最小值下标
int minPosition = min_element(a,a+6) - a;
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐