특정 범위에서 가장 작은 값을 가지는 요소를 찾는데 사용된다. algorithm 헤더에 포함된 함수다.
first : 탐색 시작 지점을 나타내는 반복자last : 탐색 종료 지점을 나타내는 반복자 (탐색 범위에 포함되지 않음)comp (선택적) : 사용자 정의 비교 함수. 특정 조건에 따라 최소 요소를 찾을 수 있음last 반복자를 반환기본 사용법
int main() {
std::vector<int> v = {3, 1, 4, 1, 5, 9, 2};
auto minIt = std::min_element(v.begin(), v.end());
if (minIt != v.end()) {
std::cout << "최소값: " << *minIt << "\n";
} else {
std::cout << "벡터가 비어 있습니다.\n";
}
return 0;
}
출력
최소값: 1
사용자 정의 비교 함수
comp를 통해 특정 기준에 따라 최소값을 결정할 수 있다.
bool compare(int a, int b) {
return abs(a) < abs(b); // 절댓값 기준 비교
}
int main() {
std::vector<int> v = {-10, -20, 15, 5};
auto minIt = std::min_element(v.begin(), v.end(), compare);
if (minIt != v.end()) {
std::cout << "절댓값 기준 최소값: " << *minIt << "\n";
}
return 0;
}
출력
절댓값 기준 최소값: 5
시간복잡도
안정성
사용 범위
min_element()는 임의 접근 반복자뿐만 아니라 순차 반복자에서도 사용할 수 있다.std::min()std::min_element()int main() {
int a = 10, b = 20;
std::cout << "std::min: " << std::min(a, b) << "\n"; // 값 반환
std::vector<int> v = {3, 1, 4};
auto minIt = std::min_element(v.begin(), v.end());
if (minIt != v.end()) {
std::cout << "std::min_element: " << *minIt << "\n"; // 반복자가 가리키는 값 반환
}
return 0;
}
출력
std::min: 10
std::min_element: 1