std::remove_if
`std::remove_if`는 C++ 표준 라이브러리의 알고리즘으로, 주어진 범위에서 특정 조건을 만족하는 요소를 제거하는 역할을 합니다. 이 함수는 제거된 요소를 범위의 끝으로 이동시키는 방식으로 동작하며, 실제로 컨테이너의 크기를 변경하지는 않습니다. `std::remove_if`는 다음과 같은 시그니처를 가집니다: ```cpp template< class ForwardIt, class UnaryPredicate > ForwardIt remove_if( ForwardIt first, ForwardIt last, UnaryPredicate p ); ``` - `first`와 `last`는 함수가 적용될 요소의 범위를 정의하는 반복자입니다. - `p`는 요소를 제거할지 여부를 판단하는 조건을 정의하는 부울 함수 또는 함수 객체입니다. 사용 예시: ```cpp include include bool isOdd(int n) { return n % 2 != 0; // 홀수일 경우 true 반환 } int main() { std::vector vec = {1, 2, 3, 4, 5, 6}; auto newEnd = std::remove_if(vec.begin(), vec.end(), isOdd); vec.erase(newEnd, vec.end()); // 제거된 요소 이후의 요소를 삭제 // 이제 vec에는 짝수들만 남아 있음 } ``` 이 예시에서는 `isOdd` 함수가 홀수를 판단하고, `std::remove_if`를 통해 홀수를 벡터에서 "제거"한 후, 실제로 벡터에서 제거된 요소를 지우기 위해 `erase`를 사용합니다.
내용이 부정하다면 싫어요를 누르세요.