Gibt es eine Standardfunktion, die die Position (nicht den Wert) des max-Elements eines Array von Werten zurückgibt?
Zum Beispiel:
Angenommen, ich habe ein Array wie dieses:
sampleArray = [1, 5, 2, 9, 4, 6, 3]
Ich möchte eine Funktion, die die Ganzzahl 3 zurückgibt, die mir sagt, dass dies sampleArray[3]
der größte Wert im Array ist.
RandomAccessIterator
. In diesem Fall ist er zeitlich konstant. In jedem Fall erfolgt die Optimierung intern für Sie.Oder in einer Zeile geschrieben:
std::cout << std::distance(sampleArray.begin(),std::max_element(sampleArray.begin(), sampleArray.end()));
quelle
Mit der
max_element()
Funktion können Sie die Position des max-Elements ermitteln.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; }
quelle
std::max_element
Nimmt zwei Iteratoren, die eine Sequenz begrenzen, und gibt einen Iterator zurück, der auf das maximale Element in dieser Sequenz zeigt. Sie können der Funktion, die die Reihenfolge der Elemente definiert, zusätzlich ein Prädikat übergeben.quelle
STL hat eine max_elements-Funktion. Hier ein Beispiel: http://www.cplusplus.com/reference/algorithm/max_element/
quelle