是否有一个标准函数返回值数组的max元素的位置(而不是值)?
例如:
假设我有一个像这样的数组:
sampleArray = [1, 5, 2, 9, 4, 6, 3]
我想要一个返回3的整数的函数,该整数告诉我这sampleArray[3]
是数组中的最大值。
Answers:
在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;
}
或者,写成一行:
std::cout << std::distance(sampleArray.begin(),std::max_element(sampleArray.begin(), sampleArray.end()));
std::max_element
采用两个定界一个序列的迭代器,并返回指向该序列中最大元素的迭代器。您还可以将谓词传递给定义元素顺序的函数。
STL具有max_elements函数。这是一个示例:http : //www.cplusplus.com/reference/algorithm/max_element/