এটি সর্টেড ভেক্টর অফ পেয়ারসে বাইনারি সার্চ ইমপ্লিমেন্ট করার একটি C++ প্রোগ্রাম।
অ্যালগরিদম
শুরু keycompare স্ট্রাকচার ঘোষণা করুন। Function operator()(const pair& v, const int& k) বুলিয়ান রিটার্ন করে। Status = v.first < k। Status রিটার্ন করুন। Function operator()(const pair& v, const int& k) বুলিয়ান রিটার্ন করে। Status = k < v.first। Status রিটার্ন করুন। একটি v ভেক্টর ঘোষণা করুন। v-এ ইন্টিজার ডেটা টাইপের কি ও ভ্যালু পেয়ার ঘোষণা করুন। v ভেক্টরে মান ইনসার্ট করতে push_back() ফাংশন কল করুন। v ভেক্টরের সকল উপাদান সর্ট করতে sort() ফাংশন কল করুন। "সর্টেড ভেক্টর" প্রিন্ট করুন। "কি" "ভ্যালু" প্রিন্ট করুন। for (pair& n : v) n-এর first ও second মান প্রিন্ট করুন। if (binary_search(v.begin(), v.end(), 50, keycompare())) then "৫০ ভেক্টরে আছে" প্রিন্ট করুন। Else "৫০ ভেক্টরে নেই" প্রিন্ট করুন। if (binary_search(v.begin(), v.end(), 7, keycompare())) then "৭ ভেক্টরে আছে" প্রিন্ট করুন। Else "৭ ভেক্টরে নেই" প্রিন্ট করুন। শেষ।
উদাহরণ কোড
#include <algorithm> #include <iostream> #include <vector> using namespace std; struct keycompare { bool operator()(const pair<int, int>& v, const int& k) { return (v.first < k); } bool operator()(const int& k, const pair<int, int>& v) { return (k < v.first); } }; int main() { vector<pair<int, int>> v; v.push_back(make_pair(7, 26)); v.push_back(make_pair(6, 76)); v.push_back(make_pair(4, 16)); v.push_back(make_pair(5, 36)); sort(v.begin(), v.end()); cout << "সর্টেড ভেক্টর" << endl; cout << "KEY" << '\t' << "VALUE" << endl; for (pair& n : v) cout << n.first << '\t' << n.second << endl; if (binary_search(v.begin(), v.end(), 50, keycompare())) cout << "৫০ ভেক্টরে আছে"; else cout << "৫০ ভেক্টরে নেই"; cout << endl; if (binary_search(v.begin(), v.end(), 7, keycompare())) cout << "৭ ভেক্টরে আছে"; else cout << "৭ ভেক্টরে নেই"; return 0; }আউটপুট
সর্টেড ভেক্টর KEY VALUE ৪ ১৬ ৫ ৩৬ ৬ ৭৬ ৭ ২৬ ৫০ ভেক্টরে নেই ৭ ভেক্টরে আছে