এই লেখায় আমরা C++ STL-এ multimap::insert() ফাংশনের কাজ করার পদ্ধতি, সিনট্যাক্স এবং উদাহরণ নিয়ে আলোচনা করব।
C++ STL-এ Multimap কী?
Multimap হল একটি অ্যাসোসিয়েটিভ কন্টেইনার যা ম্যাপ কন্টেইনারের মতো। এটি কী-ভ্যালু জোড়া হিসেবে উপাদান সংরক্ষণ করে নির্দিষ্ট ক্রমে। একটি মাল্টিম্যাপ কন্টেইনারে একই কী-এর সাথে একাধিক উপাদান থাকতে পারে। ডেটা অভ্যন্তরীণভাবে সংশ্লিষ্ট কী-هاর সাহায্যে সর্টেড থাকে।
multimap::insert() কী?
multimap::insert() হল C++ STL-এ একটি বিল্ট-ইন ফাংশন, যা <map> হেডার ফাইলে সংজ্ঞায়িত। insert() মাল্টিম্যাপ কন্টেইনারে নতুন ভ্যালু ইনসার্ট করতে এবং ইনসার্ট করা উপাদান সংখ্যা অনুযায়ী কন্টেইনারের সাইজ বাড়াতে ব্যবহৃত হয়।
একটি ম্যাপ কন্টেইনারের মতো নয় যা সংশ্লিষ্ট কী ইতিমধ্যে আছে কিনা চেক করে এবং থাকলে ইনসার্ট করে না, মাল্টিম্যাপে একই কী-র সাথে একাধিক উপাদান যুক্ত করার সুবিধা আছে।
তাই, যখনই আমরা একটি উপাদান ইনসার্ট করি, সেটি তার সংশ্লিষ্ট কী-র মোতাবেক তার পজিশনে চলে যায়।
সিনট্যাক্স
multiMap_name.insert({key& k, value_type& val});
অথবা
multiMap_name.insert(iterator& it, {key& k, value_type& val});
অথবা
multiMap_name.insert(iterator& position1, iterator& position2);
অথবা
multimap_name.insert(initializer_list <value_type> il);
প্যারামিটার
- k — এটি উপাদানের সাথে যুক্ত কী। ফাংশনটি চেক করে কীটি ইতিমধ্যে কন্টেইনারে আছে কিনা, থাকলে ইনসার্ট করে না।
- val — ইনসার্ট করা ভ্যালু।
- it — ইটেরেটর টাইপের ভ্যালু যা পজিশন দিতে ব্যবহৃত হয় যেখানে আমরা উপাদানটি ইনসার্ট করতে চাই।
- position1, position2 — position1 হল শুরুতে পজিশন এবং position2 হল শেষ পজিশন যখন আমরা একাধিক উপাদানের সিরিজ ইনসার্ট করতে চাই, আমরা একাধিক উপাদানের রেঞ্জ ব্যবহার করতে পারি।
- il — এটি একটি ইলিশিয়ালাইজার লিস্ট যাতে কন্টেইনারে ইনিশিয়ালাইজ করার উপাদানগুলো থাকে।
রিটার্ন ভ্যালু
এই ফাংশন ম্যাপ কন্টেইনারে নতুন ইনসার্ট করা উপাদানকে নির্দেশকারী একটি ইটেরেটর রিটার্ন করে।
উদাহরণ ১: নির্দিষ্ট পজিশন এবং কী-এ ইনসার্ট
#include <bits/stdc++.h>
using namespace std;
int main() {
multimap<int, int> mul;
// মাল্টিম্যাপে উপাদান ইনসার্ট
mul.insert({1, 10});
mul.insert({2, 20});
mul.insert({3, 30});
mul.insert({4, 40});
mul.insert({5, 50});
// মাল্টিম্যাপ উপাদান ডিসপ্লে
cout << "Elements in multimap is: \n";
cout << "KEY\tELEMENT\n";
for (auto it = mul.begin(); it != mul.end(); ++it) {
cout << it->first << '\t' << it->second << '\n';
}
return 0;
}
আউটপুট
Elements in multimap is: KEY ELEMENT 1 10 2 20 3 30 4 40 5 50
উদাহরণ ২: নির্দিষ্ট কী-এর পরে উপাদান ইনসার্ট
#include <bits/stdc++.h>
using namespace std;
int main() {
multimap<int, int> mul;
// মাল্টিম্যাপে উপাদান ইনসার্ট
mul.insert({1, 10});
mul.insert({2, 20});
mul.insert({3, 30});
mul.insert({5, 40});
mul.insert({6, 50});
// যে এলিমেন্টের পরে ইনসার্ট করব সেটি খুঁজে বের করা
auto i = mul.find(3);
mul.insert(i, {4, 90});
// এলিমেন্ট প্রিন্ট
cout << "KEY\tELEMENT\n";
for (auto itr = mul.begin(); itr != mul.end(); ++itr) {
cout << itr->first << '\t' << itr->second << '\n';
}
return 0;
}
আউটপুট
KEY ELEMENT 1 10 2 20 3 30 4 90 5 40 6 50