값 배열의 최대 요소 위치 (값 아님)를 반환하는 표준 함수가 있습니까?
예를 들면 :
다음과 같은 배열이 있다고 가정합니다.
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()));
답변
max_element()
함수를 사용 하여 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;
}
답변
std::max_element
시퀀스를 구분하는 두 개의 반복기를 취하고 해당 시퀀스의 최대 요소를 가리키는 반복기를 리턴합니다. 요소의 순서를 정의하는 함수에 조건자를 추가로 전달할 수 있습니다.