是否有一个标准函数返回值数组的max元素的位置(而不是值)?
例如:
假设我有一个这样的数组:
sampleArray = [1, 5, 2, 9, 4, 6, 3]
Run Code Online (Sandbox Code Playgroud)
我想要一个返回3的整数的函数,它告诉我这sampleArray[3]是数组中最大的值.
Ste*_*hen 111
在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;
}
Run Code Online (Sandbox Code Playgroud)
小智 19
或者,写在一行(这应该作为斯蒂芬答案的评论,但我的声誉是不够的):
std::cout << std::distance(sampleArray.begin(), std::max_element(sampleArray.begin(), sampleArray.end()))
Run Code Online (Sandbox Code Playgroud)
您可以使用该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;
}
Run Code Online (Sandbox Code Playgroud)