ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน std::count_if() ใน C++ STL
std::count_if() คืออะไร
ฟังก์ชัน std::count_if() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว
ฟังก์ชันนี้ไม่เพียงแต่วนซ้ำในช่วงที่กำหนด แต่ยังตรวจสอบว่าคำสั่งหรือเงื่อนไขนั้นเป็นจริงหรือไม่ และนับจำนวนครั้งที่คำสั่งหรือเงื่อนไขเป็นจริงและส่งคืนผลลัพธ์
ไวยากรณ์
count_if(start, end, condition);
พารามิเตอร์
ฟังก์ชันยอมรับพารามิเตอร์ต่อไปนี้ −
- เริ่ม สิ้นสุด − นี่คือตัววนซ้ำที่สามารถใช้เพื่อกำหนดช่วงที่เราต้องใช้ฟังก์ชัน เริ่มต้น ให้ตำแหน่งเริ่มต้นของช่วงและสิ้นสุดให้ตำแหน่งสิ้นสุดของช่วง
- สภาพ − นี่คือเงื่อนไขที่เราต้องการตรวจสอบ Condition คือฟังก์ชัน unary ซึ่งต้องใช้กับช่วงที่กำหนด
คืนค่า
ฟังก์ชันนี้จะคืนค่าจำนวนองค์ประกอบที่ตรงตามเงื่อนไข
ตัวอย่าง
อินพุต
bool iseve(int i){ return ((i%2)==0); } int a = count_if( vect.begin(), vect.end(), iseve ); /* vect has 10 integers 1-10*/
ผลลัพธ์
even numbers = 2 4 6 8 10
ตัวอย่าง
#include <bits/stdc++.h> using namespace std; bool check_odd(int i){ if (i % 2!= 0) return true; else return false; } int main() { vector<int> vec; for (int i = 0; i < 10; i++){ vec.push_back(i); } int total_odd = count_if(vec.begin(), vec.end(), check_odd); cout<<"Number of odd is: "<<total_odd; return 0; }
ผลลัพธ์
Number of odd is: 5