공부/Code Cata

std::min_element

동그래님 2024. 12. 18. 20:49

vector 안의 최소 값을 탐색하는 방법에 대해 연구하다가 min_element 함수를 알게 되었다.

ForwardIterator min_element( ForwardIterator first, ForwardIterator last );

 

  • 최소값을 가리키는 iterator를 반환한다.
  • 만약 주어진 범위가 비어 있다면, last 값을 반환한다.
  • <algorithm> 헤더에 정의되어있다.
ForwardIterator max_element( ForwardIterator first, ForwardIterator last );
  • 반대로 최대 값을 가리키는 iterator를 반환하는 함수

 

 

 

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

vector<int> solution(vector<int> arr) {
    
    if(arr.size() == 1) // arr의 크기가 1이라면 [-1]을 리턴
    {
        return {-1};
    }
    
    auto MinIterator = min_element(arr.begin(), arr.end()); // 벡터 내의 최소값을 가지는 Iterator 반환
    if(MinIterator != arr.end()) // 최소 값이 존재하는지 확인
    {
        arr.erase(MinIterator); // 존재하는 최소 값 삭제
    }
    
    return arr;
}