값 배열의 최대 요소 위치 (값 아님)를 반환하는 표준 함수가 있습니까?
예를 들면 :
다음과 같은 배열이 있다고 가정합니다.
sampleArray = [1, 5, 2, 9, 4, 6, 3]
sampleArray[3]
배열에서 가장 큰 값 을 알려주는 정수 3을 반환하는 함수를 원합니다 .
답변:
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/