ในบทความนี้ เราจะอภิปรายการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน std::count_if() ใน C++ STL
std::count_if() คืออะไร?
ฟังก์ชัน std::count_if() เป็นฟังก์ชันสำเร็จรูปใน C++ STL ซึ่งถูกกำหนดในไฟล์หัวข้อ <algorithm> count_if() ใช้เพื่อรับจำนวนองค์ประกอบในช่วงที่ระบุซึ่งตรงตามเงื่อนไข ฟังก์ชันนี้ส่งคืนค่าจำนวนเต็มซึ่งเป็นจำนวนองค์ประกอบที่ตรงตามเงื่อนไข
ฟังก์ชันนี้ไม่เพียงแค่วนลูปผ่านช่วงที่กำหนด แต่ยังตรวจสอบว่าข้อความหรือเงื่อนไขเป็นจริงและนับว่าข้อความหรือเงื่อนไขเป็นจริงกี่ครั้งและส่งคืนผลลัพธ์
ไวยากรณ์
count_if(start, end, condition);
พารามิเตอร์
ฟังก์ชันยอมรับพารามิเตอร์ต่อไปนี้:
- start, end - นี่คือ iterators ที่สามารถใช้เพื่อให้ช่วงที่เราต้องการใช้ฟังก์ชัน start ให้ตำแหน่งเริ่มต้นของช่วง และ end ให้ตำแหน่งสิ้นสุดของช่วง
- condition - นี่คือเงื่อนไขที่เราต้องการตรวจสอบ Condition เป็น unary function ที่ต้องนำไปใช้กับช่วงที่กำหนด
ค่าที่ส่งคืน
ฟังก์ชันนี้ส่งคืนจำนวนองค์ประกอบที่ตรงตามเงื่อนไข
ตัวอย่าง
Input
bool iseve(int i){ return ((i%2)==0); }
int a = count_if( vect.begin(), vect.end(), iseve ); /* vect has 10 integers 1-10*/
Output
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