[STL] std::ranges::minmax_elementC++/STL2024. 6. 23. 22:48
Table of Contents
1. 개요
std::ranges::minmax_element 함수는 C++20부터 표준 라이브러리에 추가된 함수로, 주어진 범위에서 가장 작은(minimum) 요소와 가장 큰(maximum) 요소의 반복자를 동시에 반환한다.
2. template
template<typename Range>
auto minmax_example(const Range& range) {
return std::ranges::minmax_element(range);
}
2.1. 매개 변수
- range: 검색할 요소들의 범위를 나타내는 반복자들이다.
- comp (선택적): 비교 조건을 나타내는 함수 객체(람다 함수)이다. 기본적으로는 < 연산자를 사용하여 요소를 비교한다.
2.2.반환값
std::pair 객체를 반환한다. std::pair는 두 개의 반복자를 포함하며, 첫 번째 반복자는 가장 작은 요소를 가리키고, 두 번째 반복자는 가장 큰 요소를 가리킨다.
3. 사용 예시
#include <iostream>
#include <algorithm> // std::ranges::minmax_element
#include <vector>
int main() {
std::vector<int> numbers = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};
// 벡터 numbers에서 가장 작은 요소와 가장 큰 요소의 반복자를 검색
auto [min_it, max_it] = std::ranges::minmax_element(numbers);
// 가장 작은 요소 출력
std::cout << "가장 작은 요소: " << *min_it << std::endl;
// 가장 큰 요소 출력
std::cout << "가장 큰 요소: " << *max_it << std::endl;
return 0;
}
3.1. 결과 출력
가장 작은 요소: 1
가장 큰 요소: 9
4. 참고사항
4.1. 범위의 처음부터 끝까지의 비교
검색된 최솟값과 최댓값의 반복자는 범위의 처음부터 끝까지의 비교를 통해 결정
4.2. 관련 문서
https://en.cppreference.com/w/cpp/algorithm/ranges/minmax_element
728x90
@rlozlr :: 얼렁뚱땅 개발자
얼렁뚱땅 주니어 개발자
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!