Được đưa ra với một mảng và nhiệm vụ là tìm số phần tử chẵn và lẻ trong một mảng bằng cách sử dụng thư viện mẫu chuẩn trong C ++.
Để giải quyết vấn đề này, chúng tôi sử dụng hàm count_if () có trong thư viện mẫu chuẩn C ++. Hàm count_if () là gì?
Cú pháp
count_if(LowerBound, UpperBound, function)
Mô tả - Hàm này trả về số phần tử trong mảng thỏa mãn điều kiện cho trước. Nó có ba tham số.
- Giới hạn dưới - Nó trỏ đến phần tử đầu tiên của một mảng hoặc bất kỳ chuỗi nào khác.
- Giới hạn trên - Nó trỏ đến phần tử cuối cùng của một mảng hoặc bất kỳ chuỗi nào khác.
- Chức năng - Nó trả về giá trị Boolean trên cơ sở điều kiện được chỉ định.
Ví dụ
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
Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau -
- Nhập các giá trị số nguyên trong một mảng kiểu số nguyên
- Tạo hàm bool để kiểm tra xem phần tử của một mảng có phải là số lẻ hay không. Nếu các phần tử được chọn là số lẻ thì các phần tử còn lại sẽ là số chẵn.
- Gọi hàm count_if () lấy phần tử đầu tiên và cuối cùng và hàm làm tham số.
Ví dụ
#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; }
Đầu ra
Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
Odds are: 4 Evens are: 3