[C++] 특정 조건에 일치하는 데이터 찾기 std::find_if()

bolee·2022년 11월 26일
0

C++

목록 보기
3/16
post-thumbnail

std::find_if()

#include <algorithm>

template <class InputIterator, class UnaryPredicate>   InputIterator find_if (InputIterator first, InputIterator last, UnaryPredicate pred);

특정 범위 내에서 특정 조건을 만족하는 데이터를 찾는 함수이다.
조건과 일치한다는 것을 pred에 원소를 인자로 전달하여 호출하였을 때 true를 반환한다는 의미이다.

Parameters

ParametersDescription
first찾는 범위의 첫번째 iterator
last찾는 범위의 마지막 iterator
last가 가리키는 원소는 포함되지 않는다.
pred해당 원소를 인자로 받는 단항 함수로 bool 또는 bool로 변환될 수 있는 타입을 반환한다.
해당 반환 값은 조건 만족을 확인하는 역할을 하며, 전달된 원소는 수정되면 안된다.

Return value

첫번째로 pred를 만족하는 즉, true를 반환하는 원소를 가리키는 iterator를 반환한다.
만약 만족하는 원소가 없다면 last를 반환한다.


Example

#include <algorithm>  // std::find_if
#include <iostream>   // std::cout
#include <vector>     // std::vector

using namespace std;

bool IsOdd(int i) { return ((i % 2) == 1); }

int main() {
  vector<int> myvector;

  myvector.push_back(10);
  myvector.push_back(25);
  myvector.push_back(40);
  myvector.push_back(55);

  vector<int>::iterator it = find_if(myvector.begin(), myvector.end(), IsOdd);
  cout << "첫 번째 홀수는 " << *it << '\n';

  return 0;
}

Output

첫 번째 홀수는 25

참고 자료

0개의 댓글