배열과 함께 주어진 작업은 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