Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

count_if() ใน C++ STL

ในบทความนี้ เราจะอภิปรายการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน 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