Есть ли стандартная функция, которая возвращает позицию (не значение) максимального элемента массива значений?
Например:
Предположим, у меня есть такой массив:
sampleArray = [1, 5, 2, 9, 4, 6, 3]
Мне нужна функция, которая возвращает целое число 3, которое сообщает мне, что sampleArray[3]
это наибольшее значение в массиве.
RandomAccessIterator
, и в этом случае он постоянен во времени. В любом случае оптимизация выполняется за вас.Или написано одной строкой:
std::cout << std::distance(sampleArray.begin(),std::max_element(sampleArray.begin(), sampleArray.end()));
источник
Вы можете использовать
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; }
источник
std::max_element
принимает два итератора, ограничивающих последовательность, и возвращает итератор, указывающий на максимальный элемент в этой последовательности. Вы можете дополнительно передать предикат функции, которая определяет порядок элементов.источник
В STL есть функция max_elements. Вот пример: http://www.cplusplus.com/reference/algorithm/max_element/
источник