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

ค้นหาองค์ประกอบของ Array ที่เป็นเลขคี่และคู่โดยใช้ STL ใน C++


ให้กับอาร์เรย์และงานคือการค้นหาจำนวนองค์ประกอบคี่และคู่ในอาร์เรย์โดยใช้ไลบรารีเทมเพลตมาตรฐานใน 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