ให้กับอาร์เรย์และภารกิจคือการค้นหาตัวเลขที่หารด้วย N โดยใช้ไลบรารีเทมเพลตมาตรฐานใน C ++
เพื่อแก้ปัญหานี้ เราใช้ฟังก์ชัน count_if() ที่มีอยู่ในไลบรารีเทมเพลตมาตรฐาน C++
ฟังก์ชัน count_if() คืออะไร
ไวยากรณ์
count_if(LowerBound, UpperBound, function)
คำอธิบาย − ฟังก์ชันนี้จะคืนค่าจำนวนองค์ประกอบในอาร์เรย์ที่ตรงตามเงื่อนไขที่กำหนด ต้องใช้สามพารามิเตอร์
- ขอบเขตล่าง − มันชี้ไปที่องค์ประกอบแรกของอาร์เรย์หรือลำดับอื่นใด
- ขอบเขตบน − มันชี้ไปที่องค์ประกอบสุดท้ายของอาร์เรย์หรือลำดับอื่นๆ
- ฟังก์ชัน − ส่งกลับค่าบูลีนตามเงื่อนไขที่ระบุ
ตัวอย่าง
Input-: array[] = {2, 4, 1, 5, 8, 9} N = 4 Output-: Elements divisible by 4: 2 Input-: array[] = {1, 2, 3, 4, 5, 10} N = 2 Output: Elements divisible by 2: 3
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้ −
- ป้อนค่าจำนวนเต็มในอาร์เรย์ประเภทจำนวนเต็ม
- สร้างฟังก์ชันบูลเพื่อตรวจสอบว่าองค์ประกอบของอาร์เรย์นั้นหารด้วยค่าอินพุตของผู้ใช้ N ได้หรือไม่
- เรียกฟังก์ชัน count_if() ซึ่งรับองค์ประกอบแรกและตัวสุดท้าย และฟังก์ชันเป็นพารามิเตอร์
ตัวอย่าง
#include <bits/stdc++.h> using namespace std; int n; //function to check if the element is divisible by n bool check(int i) { if (i % n == 0) return true; else return false; } int main() { int arr[] = {2, 4, 1, 5, 8, 9}; n = 4; int size = sizeof(arr) / sizeof(arr[0]); int temp = count_if(arr, arr + size, check); cout<<"Elements divisible by "<<n<< ": " <<temp; return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
Elements divisible by 4: 2