C++ এর adjacent_find() ফাংশন - বাংলায় ব্যাখ্যা
লেখক: Shakil Babu | তারিখ: ২৯ মার্চ, ২০২৫
adjacent_find() কী?
C++ এর <algorithm>
লাইব্রেরিতে adjacent_find()
একটি ফাংশন যা কোনো রেঞ্জের (যেমন: ভেক্টর, অ্যারে) মধ্যে দুটি পাশাপাশি উপাদান খুঁজে বের করে, যারা একই মান ধারণ করে বা কোনো নির্দিষ্ট শর্ত পূরণ করে। এটি প্রথম জোড়া পাশাপাশি উপাদানের ইটারেটর রিটার্ন করে। যদি এমন কোনো জোড়া না পাওয়া যায়, তবে রেঞ্জের শেষ ইটারেটর রিটার্ন করে।
সিনট্যাক্স
adjacent_find (ForwardIterator first, ForwardIterator last);
// অথবা
adjacent_find (ForwardIterator first, ForwardIterator last, BinaryPredicate pred);
- first: রেঞ্জের শুরুর ইটারেটর।
- last: রেঞ্জের শেষের ইটারেটর।
- pred: একটি বাইনারি প্রেডিকেট (ঐচ্ছিক), যা দুটি উপাদানের মধ্যে তুলনা করে।
উদাহরণগুলো বাংলায় ব্যাখ্যা
উদাহরণ ১: ডিফল্ট adjacent_find()
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> v = {1, 2, 2, 3, 4, 5};
auto it = adjacent_find(v.begin(), v.end());
if (it != v.end()) {
cout << "পাশাপাশি একই উপাদান পাওয়া গেছে: " << *it << endl;
} else {
cout << "কোনো পাশাপাশি একই উপাদান নেই" << endl;
}
return 0;
}
আউটপুট: পাশাপাশি একই উপাদান পাওয়া গেছে: ২
ব্যাখ্যা: এখানে ভেক্টরে {1, 2, 2, 3, 4, 5}
আছে। adjacent_find()
দেখেছে যে ২ এবং ২ পাশাপাশি আছে। তাই প্রথম ২-এর ইটারেটর রিটার্ন করেছে।
উদাহরণ ২: কোনো পাশাপাশি একই উপাদান না থাকলে
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> v = {1, 3, 5, 7};
auto it = adjacent_find(v.begin(), v.end());
if (it != v.end()) {
cout << "পাশাপাশি একই উপাদান পাওয়া গেছে: " << *it << endl;
} else {
cout << "কোনো পাশাপাশি একই উপাদান নেই" << endl;
}
return 0;
}
আউটপুট: কোনো পাশাপাশি একই উপাদান নেই
ব্যাখ্যা: এখানে {1, 3, 5, 7}
-এ কোনো পাশাপাশি একই সংখ্যা নেই। তাই v.end()
রিটার্ন করেছে।
উদাহরণ ৩: কাস্টম প্রেডিকেট ব্যবহার
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool sumEqualToTen(int a, int b) {
return (a + b == 10);
}
int main() {
vector<int> v = {3, 7, 4, 6, 5};
auto it = adjacent_find(v.begin(), v.end(), sumEqualToTen);
if (it != v.end()) {
cout << "পাশাপাশি উপাদান যার সমষ্টি ১০: " << *it << " এবং " << *(it + 1) << endl;
} else {
cout << "এমন কোনো জোড়া নেই" << endl;
}
return 0;
}
আউটপুট: পাশাপাশি উপাদান যার সমষ্টি ১০: ৩ এবং ৭
ব্যাখ্যা: এখানে {3, 7, 4, 6, 5}
-এ ৩ এবং ৭-এর সমষ্টি ১০। তাই প্রথম উপাদান ৩-এর ইটারেটর রিটার্ন করেছে।
0 comments:
Post a Comment