[C++] max_element(), min_element()

Ghyeok·2025년 9월 23일

C++

목록 보기
1/16

std::max_element, std::min_element는 C++ 표준라이브러리(STL)의 algorithm 헤더 에 정의된 함수이다.


max_element, min_element 함수란?

특정 구간( [first, last) ) 내에서 array, list, vector 등 최대, 최소값을 구하는 함수이다.
이 함수의 반환값은 iterator(반복자)이므로, 실제 값에 접근하려면 포인터처럼 * 연산자를 사용해야한다.
max_element(), min_element 둘 다 모든 요소에 최소 한번씩은 접근해야 하기 때문에
범위 길이에 비례하는 선형 시간 복잡도 O(N)을 가진다.


사용 예시

#include <bits/stdc++.h>
using namespace std;

int a[9];
int main(void){
  ios::sync_with_stdio(0);
  cin.tie(0);

  for(int i = 0; i < 9; i++) cin >> a[i];
  cout << *max_element(a, a+9) << '\n'; // 최댓값 출력
  cout << max_element(a, a+9) - a + 1; // 최댓값의 인덱스 출력
}

a라는 배열에 9개의 값을 넣고, 이 중 최댓값과 최댓값의 인덱스를 출력하는 코드이다.
*max_element(a, a+9)는 *연산자를 통해 최댓값을 직접 참조해서 출력하고,
max_element(a, a+9)의 반환값은 (배열 a의 주소 + 최댓값의 인덱스)이므로 배열 a의 주소를 뺌으로써 최댓값의 인덱스를 얻을 수 있다.

0개의 댓글