Czy istnieje standardowa funkcja, która zwraca pozycję (nie wartość) maksymalnego elementu tablicy wartości?
Na przykład:
Załóżmy, że mam taką tablicę:
sampleArray = [1, 5, 2, 9, 4, 6, 3]
Chcę funkcji, która zwraca liczbę całkowitą 3, która mówi mi, że sampleArray[3]
jest to największa wartość w tablicy.
RandomAccessIterator
, w którym to przypadku jest stała w czasie. W każdym razie optymalizacja jest wykonywana wewnętrznie za Ciebie.Lub napisane w jednej linii:
std::cout << std::distance(sampleArray.begin(),std::max_element(sampleArray.begin(), sampleArray.end()));
źródło
Możesz użyć
max_element()
funkcji, aby znaleźć pozycję elementu 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; }
źródło
std::max_element
przyjmuje dwa iteratory ograniczające sekwencję i zwraca iterator wskazujący na maksymalny element w tej sekwencji. Możesz dodatkowo przekazać predykat do funkcji, która określa kolejność elementów.źródło
STL ma funkcję max_elements. Oto przykład: http://www.cplusplus.com/reference/algorithm/max_element/
źródło