একটি অ্যারের সাথে দেওয়া হয়েছে এবং কাজটি হল C++ এ স্ট্যান্ডার্ড টেমপ্লেট লাইব্রেরি ব্যবহার করে একটি অ্যারেতে বিজোড় এবং জোড় উপাদানের সংখ্যা খুঁজে বের করা।
এই সমস্যাটি সমাধান করার জন্য আমরা 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
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি −
- পূর্ণসংখ্যার প্রকারের একটি অ্যারেতে পূর্ণসংখ্যার মানগুলি ইনপুট করুন
- একটি অ্যারের উপাদান বিজোড় কি না তা পরীক্ষা করতে bool ফাংশন তৈরি করুন। নির্বাচিত উপাদানগুলো বিজোড় হলে বাকি উপাদানগুলো জোড় হবে।
- ফাংশন 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