কম্পিউটার টিউটোরিয়াল

C++ STL-এ map ও unordered_map ট্রাভার্সাল


Map কন্টেইনার

Map একটি অ্যাসোসিয়েটিভ কন্টেইনার যা কি-ভ্যালু পেয়ার সংরক্ষণ করে। প্রতিটি কি অনন্য। মূল মেথডগুলো:

  • begin() - প্রথম এলিমেন্টের ইটারেটর।
  • end() - শেষ এলিমেন্টের পরের স্যাবধানিক ইটারেটর।
  • size() - এলিমেন্ট সংখ্যা।
  • max_size() - সর্বোচ্চ ধারণ ক্ষমতা।
  • empty() - খালি কিনা।

Map উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int main() {
    int A[] = { 2, 2, 3, 2, 2, 4, 5, 4 };
    int num = sizeof(A) / sizeof(A[0]);
    map<int, int> my_map;
    for (int p = 0; p < num; p++)
        my_map[A[p]]++;
    cout << "Item Frequency" << endl;
    for (auto p : my_map)
        cout << p.first << " : " << p.second << endl;
}
Item Frequency
2 : 4
3 : 1
4 : 2
5 : 1

Unordered Map

unordered_map হ্যাশ টেবিল ভিত্তিক, কি-ভ্যালু পেয়ার সংরক্ষণ করে। কি এবং ভ্যালু যেকোনো টাইপ হতে পারে। ক্রম বজায় রাখে না।

Unordered Map উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int main() {
    int A[] = { 2, 2, 3, 2, 2, 4, 5, 4 };
    int num = sizeof(A) / sizeof(A[0]);
    unordered_map<int, int> my_map;
    for (int p = 0; p < num; p++)
        my_map[A[p]]++;
    cout << "Item Frequency" << endl;
    for (auto p : my_map)
        cout << p.first << " : " << p.second << endl;
}
Item Frequency
5 : 1
4 : 2
2 : 4
3 : 1

প্রধান পার্থক্য

শেষностиmapunordered_map
ক্রমসর্টেড (কি অনুযায়ী)ক্রম নেই
সার্চ টাইমO(log n)গড়ে O(1)
ইমপ্লিমেন্টেশনব্যালেন্সড BST (রেড-ব্ল্যাক ট্রি)হ্যাশ টেবিল
  1. C++ STL-এ stable_sort() ফাংশন

  2. C++ STL-এ অ্যারে অ্যালগরিদমসমূহ

  3. C++ STL-এ Set vs Map পার্থক্য (Set vs Map in C++ STL)

  4. C++ STL-এ Map বাস্তবায়ন: কী-ভ্যালু জোড়ার অ্যাসোসিয়েটিভ কন্টেইনার