STL পরিচিতি । পর্ব - ০২

আজকের পর্বে আলোচনার বিষয় 2D ভেক্টর।
 আমরা যারা অলরেডি 2D অ্যারের সাথে পরিচিত এই পর্বটি তাদের জন্য। 2D অ্যারে তে আমরা একটা ম্যাট্রিক্স ইনপুট নিতে পারি।
একটা 1D  অ্যারে র কোন এলিমেন্ট প্রকাশ করতে একটি ভ্যারিয়েবল প্রয়োজন। 1D অ্যারের ক্ষেত্রে  ara[x]  তার X তম এলিমেন্ট বোঝায়। তেমনি একটা ২D অ্যারে র কোন এলিমেন্ট প্রকাশ করতে দুটি ভ্যারিয়েবল i , j ব্যাবহার হলে ara[i][j] বলতে বোঝায় i তম সারির j তম কলাম এর ভ্যালু। 
ধরো,

2     0     7
5     6     9

এই ম্যাট্রিক্স তথা 2D অ্যারে ইনপুট নিতে হবে। তাহলে আমরা কিভাবে নেই? 



নিশ্চই এভাবে? এখানে ara[n][m] ডিক্লেয়ার করার মানে হচ্ছে আমার 2D অ্যারে তে n টি সারি আর m টি কলাম থাকবে। আউটার লুপের কাউন্টার ভ্যারিয়েবল অ্যারের সারি নং এবং ইনার লুপের কাউন্টার ভ্যারিয়েবল অ্যারের কলাম নং প্রকাশ করে।
এবার আসা যাক এই একই কাজ কিভাবে 2D ভেক্টর দিয়ে করা যায়!  


তাহলে আমি কি করলাম এখানে?  প্রথম লাইনে একটা 2D ভেক্টর ডিক্লেয়ার করে নিলাম। দ্বিতীয় লাইনে একটা 1D টেম্পোরারি ভেক্টর ডিক্লেয়ার করলাম। যার মধ্যে আমি প্রতিবার একটি নির্দিষ্ট সারির সকল এলিমেন্ট পুশ করার পর এই ভেক্টর টা কে 2D ভেক্টরের মধ্যে পুশ করি । এবং টেম্পোরারি ভেক্টর টি কে ক্লিয়ার করে নেই প্রতিবার। কারণ পরবর্তী সারির ক্ষেত্রে নাহয় আগের সারির এলিমেন্ট গুলো ও ইনসার্ট হবে। এভাবে আমরা একটা 2D ভেক্টর নিয়ে কাজ করতে পারি যেখানে তার সাইজ আগে থেকে ডিক্লেয়ার করা লাগবে না। অর্থাৎ, সাইজ হবে ডায়নামিক ( আমার প্রয়োজন অনুসারে ) । 

এখানে উল্লেখ্য যে, প্রথম লাইনে 2D ভেক্টর ডিক্লেয়ার করার ক্ষেত্রে V এর বামে পরপর ২টি এংগেল ব্র্যাকেট এর মাঝে একটা স্পেস দেয়া ভালো। 

পরবর্তীতে হাজির হবো, STL এর অন্য কোন পর্ব নিয়ে। ভেক্টর এই পর্যন্তই। 
ভেক্টর নিয়ে আর কোন প্রশ্ন থাকলে কমেন্ট বক্স তো আছেই! 

 HAPPY CODING -_-

Comments

Trending Post

GCD of all numbers of given range of the array with point update

SPOJ - PARSUMS - Nonnegative Partial Sums with Sliding Range Minimum Query

LeetCode - Single Number III