এই আর্টিকেলে C++ STL-এ map::crbegin() এবং map::crend() ফাংশন দুটির ব্যবহার দেখানো হয়েছে।
Map কী?
Map হলো একটি অ্যাসোসিয়েটিভ কন্টেইনার যা কী-ভ্যালু জোড়া হিসেবে ডেটা সংরক্ষণ করে। ডেটা داخلیভাবে কী অনুযায়ী সর্টেড থাকে।
map::crbegin()
Constant Reverse Begin। এটি cbegin()-এর রিভার্স ভার্সন। ম্যাপের শেষ এলিমেন্টের দিকে কনস্ট্যান্ট রিভার্স ইটারেটর ফেরত দেয়। এই ইটারেটর দিয়ে ম্যাপ মডিফাই করা যায় না, শুধু ট্রাভার্স করা যায়।
map::crend()
Constant Reverse End। এটি cend()-এর রিভার্স ভার্সন। ম্যাপের প্রথম এলিমেন্টের ঠিক আগের পজিশনের কনস্ট্যান্ট রিভার্স ইটারেটর ফেরত দেয়।
উদাহরণ: crbegin() এবং crend() দিয়ে রিভার্স ট্রাভার্সাল
#include <bits/stdc++.h>
using namespace std;
int main() {
map<int, int> TP_Map;
TP_Map.insert({3, 50});
TP_Map.insert({2, 30});
TP_Map.insert({1, 10});
TP_Map.insert({4, 70});
// crbegin() দিয়ে শেষ এলিমেন্ট
auto last = TP_Map.crbegin();
cout << "শেষ এলিমেন্ট: " << last->first << " -> " << last->second;
cout << "\n\nTP Map (crbegin/crend দিয়ে রিভার্স):\nMAP_KEY\tMAP_ELEMENT\n";
for (auto i = TP_Map.crbegin(); i != TP_Map.crend(); i++)
cout << i->first << "\t" << i->second << endl;
return 0;
}
আউটপুট
শেষ এলিমেন্ট: 4 -> 70 TP Map (crbegin/crend দিয়ে রিভার্স): MAP_KEY MAP_ELEMENT 4 70 3 50 2 30 1 10