C++-vector:vector最值【*max_element(v.begin(), v.end())】【下标:max_element(v.begin(),v.end()) - v.begin()】

当我们有一个vector<int>数组vec时,我们只需要获取它的最大值,而又不想打乱它的顺序

一、求数组的最大值或最小值

1、vector容器

例 vector<int> vec

  • 最大值:
    • int maxValue = *max_element(v.begin(),v.end()); 
  • 最小值:
    • int minValue = *min_element(v.begin(),v.end());

2、普通数组

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

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

二、求数组最大值最小值对应的下标

1、vector容器

例 vector<int> vec

  • 最大值下标:
    • int maxPosition = max_element(v.begin(),v.end()) - v.begin(); 
  • 最小值下标:
    • int minPosition = min_element(v.begin(),v.end()) - v.begin();

2、普通数组

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

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

注意:返回的是第一个最大(小)元素的位置。

#include <iostream>
#include <vector>
#include <algorithm>

int main(){
    std::vector<int> a = { 2,4,6,7,1,0,8,9,6,3,2 };
    auto maxPosition = std::max_element(a.begin(), a.end());          // 最小值min_element
    std::cout << *maxPosition << " at the position of " << maxPosition - a.begin() << std::endl;
    return 0;
}

输出: 

9 at the position of 7

 

vector获取最值元素的方法_一只没有姓名的萌新~的博客-CSDN博客_vector找最大元素

C++数组或vector求最大值最小值_SongEsther的博客-CSDN博客_c++ vector最大值 


版权声明:本文为u013250861原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。