Finding the position of the max element

后端 未结 5 1838
感情败类
感情败类 2020-12-04 11:15

Is there a standard function that returns the position(not value) of the max element of an array of values?

For example:

Suppose I have an array like this:

相关标签:
5条回答
  • 2020-12-04 11:28

    You can use max_element() function to find the position of the max element.

    int main()
    {
        int num, arr[10];
        int x, y, a, b;
    
        cin >> num;
    
        for (int i = 0; i < num; i++)
        {
            cin >> arr[i];
        }
    
        cout << "Max element Index: " << max_element(arr, arr + num) - arr;
    
        return 0;
    }
    
    0 讨论(0)
  • 2020-12-04 11:28

    std::max_element takes two iterators delimiting a sequence and returns an iterator pointing to the maximal element in that sequence. You can additionally pass a predicate to the function that defines the ordering of elements.

    0 讨论(0)
  • 2020-12-04 11:39

    In the STL, std::max_element provides the iterator (which can be used to get index with std::distance, if you really want it).

    int main(int argc, char** argv) {
      int A[4] = {0, 2, 3, 1};
      const int N = sizeof(A) / sizeof(int);
    
      cout << "Index of max element: "
           << distance(A, max_element(A, A + N))
           << endl;
    
      return 0;
    }
    
    0 讨论(0)
  • 2020-12-04 11:39

    STL has a max_elements function. Here is an example: http://www.cplusplus.com/reference/algorithm/max_element/

    0 讨论(0)
  • 2020-12-04 11:50

    Or, written in one line:

    std::cout << std::distance(sampleArray.begin(),std::max_element(sampleArray.begin(), sampleArray.end()));
    
    0 讨论(0)
提交回复
热议问题