Thursday, June 28, 2018

Map

ম্যাপ Array এর মতোই একটি কন্টেইনার যাতে প্রতিটি এলিমেন্টের জন্য একটি Mapped Value ও একটি Key Value থাকে। দুটি এলিমেন্টের Mapped Value একই হতে পারে কিন্তু Key Value কখনই একই হবে না। 

এখন কন্সেপচুয়াল থিওরির বাইরে গিয়ে ম্যাপকে প্রোগ্রামিং প্রব্লেম কেন্দ্রিক আরো সহজভাবে তুলে ধরছি। আমরা Array তে বিভিন্ন Index এ ডাটা স্টোর করি। Index এর Value সাধারণত Integer হয়। যদি Index এর value integer না হয়ে String হত; কত  ইন্টারেষ্টিং হতো তাই না !!!! ম্যাপ দিয়ে তুমি ঠিক এই কাজটি করতে পারো। ম্যাপে Index double, long, Character ও হতে পারে।

এখন মনেকর, তোমার শিক্ষক তোমাকে রাঙামাটি জেলার আজকের তাপমাত্রা জিজ্ঞাসা করল। তুমি মুহূর্তের মধ্যে সেটি বের করতে পারবে? জানি তোমার উত্তর হবে না। কিন্তু তুমি যদি ম্যাপ ব্যবহার করে "বান্দরবান" নামের Index এ ২৮, "রাঙামাটি" নামের Index এ ২৬, "খাগড়াছড়ি" নামের Index এ ৩০ এভাবে সবকটি জেলার তাপমাত্রা আগে থেকে স্টোর করতে তাহলে প্রোগ্রামটি এক্সেকিউট করে ইনপুটে রাঙামাটি দিলেই মুহূর্তের মধ্যেই রাঙামাটি জেলার তাপমাত্রা তুমি জেনে যেতে। ম্যাপ  অনেক মজার টপিক তাই না !!!! 

ম্যাপ ডিক্লেয়ার করতে হয় এইভাবে-
map<data type1, data type2> variable;
map<string, int> m;

ম্যাপে ডাটা Initialization করা যায় এইভাবে-
m["Bandarban"]=28;
m["Rangamati"]=26;
m["Khagrachhari"]=30; 

ম্যাপ প্রোগ্রামিং এ অনেক ব্যবহৃত হয়। আমরা ভবিষ্যতে বিভিন্ন কোডিং এ ম্যাপের ব্যবহার দেখবো।

Code: 
/*  Map */

#include<iostream>
#include<cstdio>
#include<string>
#include<algorithm>
#include<map>
using namespace std;
int main()
{
    string s;
    map<string, int> m;
    m["abc"]=5;
    m["def"]=10;
    m["ijk"]=20;
    printf("%d\n", m["def"]);
    getline(cin, s, '\n');
    if(m.find(s)==m.end()) //if find() function checks until end and string does not match
    {
        printf("Not found");
    }
    else
    {
        printf("%d", m[s]);
    }
    return 0;
}


No comments:

Post a Comment