ให้กับอาร์เรย์และงานคือการค้นหาจำนวนองค์ประกอบคี่และคู่ในอาร์เรย์โดยใช้ไลบรารีเทมเพลตมาตรฐานใน C ++
เพื่อแก้ปัญหานี้ เราใช้ฟังก์ชัน count_if() ที่มีอยู่ในไลบรารีเทมเพลตมาตรฐาน C++ ฟังก์ชัน count_if() คืออะไร
ไวยากรณ์
count_if(LowerBound, UpperBound, function)
คำอธิบาย − ฟังก์ชันนี้จะคืนค่าจำนวนองค์ประกอบในอาร์เรย์ที่ตรงตามเงื่อนไขที่กำหนด ต้องใช้สามพารามิเตอร์
- ขอบเขตล่าง − มันชี้ไปที่องค์ประกอบแรกของอาร์เรย์หรือลำดับอื่นใด
- ขอบเขตบน − มันชี้ไปที่องค์ประกอบสุดท้ายของอาร์เรย์หรือลำดับอื่นๆ
- ฟังก์ชัน − ส่งกลับค่าบูลีนตามเงื่อนไขที่ระบุ
ตัวอย่าง
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
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้ −
- ป้อนค่าจำนวนเต็มในอาร์เรย์ประเภทจำนวนเต็ม
- สร้างฟังก์ชันบูลเพื่อตรวจสอบว่าองค์ประกอบของอาร์เรย์เป็นเลขคี่หรือไม่ หากองค์ประกอบที่เลือกเป็นเลขคี่มากกว่าองค์ประกอบที่เหลือจะเป็นคู่
- เรียกฟังก์ชัน 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