এই লেখায় আমরা C++ STL-এ multimap::emplace_hint() ফাংশনের কাজ করার পদ্ধতি, সিনট্যাক্স এবং উদাহরণ নিয়ে আলোচনা করব।
C++ STL-এ Multimap কী?
Multimap হল একটি অ্যাসোসিয়েটিভ কন্টেইনার যা ম্যাপ কন্টেইনারের মতো। এটি কী-ভ্যালু জোড়া হিসেবে উপাদান সংরক্ষণ করে নির্দিষ্ট ক্রমে। একটি মাল্টিম্যাপ কন্টেইনারে একই কী-এর সাথে একাধিক উপাদান থাকতে পারে। ডেটা অভ্যন্তরীণভাবে সংশ্লিষ্ট কী-هاর সাহায্যে সর্টেড থাকে।
multimap::emplace_hint() কী?
emplace_hint() হল C++ STL-এ একটি বিল্ট-ইন ফাংশন, যা <map> হেডার ফাইলে সংজ্ঞায়িত। এই ফাংশনটি একটি পজিশন সহ মাল্টিম্যাপ কন্টেইনারে একটি নতুন উপাদান ইনসার্ট করে। emplace_hint()-এ আমরা উপাদানটি একটি পজিশন সহ পাস করি, পজিশনটি একটি হিন্ট হিসেবে কাজ করে। এই ফাংশন emplace()-এর মতোই, পার্থক্য হল এখানে আমরা ভ্যালু ইনসার্ট করার জন্য একটি পজিশন হিন্ট দিই। এই ফাংশনটিও মাল্টিসেট কন্টেইনারের সাইজ ১ করে বাড়ায়।
সিনট্যাক্স
multimap_name.emplace_hint(iterator pos, Args& val);
প্যারামিটার
- pos — এটি ইটেরেটর টাইপের আর্গুমেন্ট যা পজিশন হিন্ট দিতে ব্যবহৃত হয়।
- val — এটি वह উপাদান যা আমরা ইনসার্ট করতে চাই।
রিটার্ন ভ্যালু
এই ফাংশন একটি ইটেরেটর রিটার্ন করে যেখানে উপাদানটি emplaced/ইনসার্ট করা হয়েছে।
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
int main() {
// কন্টেইনার তৈরি
multimap<int, int> mul;
// emplace_hint ব্যবহার করে ইনসার্ট
mul.emplace_hint(mul.begin(), 1, 10);
mul.emplace_hint(mul.begin(), 2, 20);
mul.emplace_hint(mul.begin(), 3, 30);
mul.emplace_hint(mul.begin(), 1, 40);
mul.emplace_hint(mul.begin(), 4, 50);
mul.emplace_hint(mul.begin(), 5, 60);
cout << "\nElements in multimap is: \n";
cout << "KEY\tELEMENT\n";
for (auto i = mul.begin(); i != mul.end(); i++) {
cout << i->first << "\t" << i->second << endl;
}
return 0;
}
আউটপুট
Elements in multimap is: KEY ELEMENT 1 40 1 10 2 20 3 30 4 50 5 60