Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 STL을 사용하여 홀수 및 짝수인 배열 요소 찾기

<시간/>

배열과 함께 주어진 작업은 C++의 표준 템플릿 라이브러리를 사용하여 배열의 홀수 및 짝수 요소 수를 찾는 것입니다.

이 문제를 해결하기 위해 C++ 표준 템플릿 라이브러리에 있는 count_if() 함수를 사용하고 있습니다. count_if() 함수란 무엇입니까?

구문

count_if(LowerBound, UpperBound, function)

설명 - 이 함수는 주어진 조건을 만족하는 배열의 요소 수를 반환합니다. 세 개의 매개변수가 필요합니다.

  • 하한 − 배열 또는 다른 시퀀스의 첫 번째 요소를 가리킵니다.
  • 상한 − 배열 또는 다른 시퀀스의 마지막 요소를 가리킵니다.
  • 기능 − 지정된 조건에 따라 Boolean 값을 반환합니다.

예시

Input-: array[] = {2, 4, 1, 5, 8, 9}
Output-: Odd elements are: 1, 5 and 9. So, total number of odds is 3
Even elements are: 2, 4 and 8
Input-: array[] = {1, 2, 3, 4, 5, 10}
Output-: Odd elements are: 1, 3 and 5. So, total number of odds is 3
Even elements are: 2, 4 and 10. So, total number of evens is 3

아래 프로그램에서 사용된 접근 방식은 다음과 같습니다. -

  • 정수형 배열에 정수값 입력
  • 배열의 요소가 홀수인지 여부를 확인하는 bool 함수를 만듭니다. 선택한 요소가 홀수인 경우 나머지 요소는 짝수입니다.
  • 첫 번째와 마지막 요소와 함수를 매개변수로 받는 count_if() 함수를 호출합니다.

예시

#include <bits/stdc++.h>
using namespace std;
// Function to check if the element is odd or even
bool check(int i) {
   if (i % 2 != 0)
      return true;
   else
      return false;
}
int main() {
   int arr[] = { 2, 10, 1, 3, 7, 4, 9 };
   int size = sizeof(arr) / sizeof(arr[0]);
   int temp = count_if(arr, arr + size, check);
   cout << "Odds are : " <<temp << endl;
   cout << "Evens are : " << (size - temp) << endl;
   return 0;
}

출력

위의 코드를 실행하면 다음 출력이 생성됩니다 -

Odds are: 4
Evens are: 3