find最大元素的位置

有没有一个标准的函数返回值的数组的最大元素的位置(而不是值)?

例如:

假设我有一个这样的数组:

sampleArray = [1, 5, 2, 9, 4, 6, 3] 

我想要一个返回3的整数的函数,告诉我sampleArray[3]是数组中最大的值。

在STL中, std::max_element提供了迭代器(如果你真的需要的话,它可以用来获得std::distance索引)。

 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; } 

您可以使用max_element()函数来查找max元素的位置。

 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; } 

或者,写在一行(这应该作为评论斯蒂芬的答案,但是我的名声是不够的):

 std::cout << std::distance(sampleArray.begin(), std::max_element(sampleArray.begin(), sampleArray.end())) 

std::max_element需要两个迭代器分隔一个序列,并返回一个指向该序列中最大元素的迭代器。 您还可以将谓词传递给定义元素sorting的函数。

STL有一个max_elements函数。 这里是一个例子: http : //www.cplusplus.com/reference/algorithm/max_element/