최대 요소의 위치 찾기 아님)를 반환하는

값 배열의 최대 요소 위치 (값 아님)를 반환하는 표준 함수가 있습니까?

예를 들면 :

다음과 같은 배열이 있다고 가정합니다.

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시퀀스를 구분하는 두 개의 반복기를 취하고 해당 시퀀스의 최대 요소를 가리키는 반복기를 리턴합니다. 요소의 순서를 정의하는 함수에 조건자를 추가로 전달할 수 있습니다.