সি ++ তে কীভাবে অগ্রাধিকার সারি কার্যকর করা যায়

এই নিবন্ধটি আপনাকে উদাহরণ সহ সি ++ তে কীভাবে অগ্রাধিকারের সারিটি প্রয়োগ করতে হবে সে সম্পর্কে একটি বিশদ এবং বিস্তৃত জ্ঞান সরবরাহ করবে।

একটি অগ্রাধিকার সারিটি এসটিএলের একটি ধারক। অগ্রাধিকারের সারির প্রতিটি উপাদানটির একটি নির্দিষ্ট অগ্রাধিকার থাকে তা বাদে এটি সারির অনুরূপ এবং আমরা যখন অগ্রাধিকার সারি থেকে উপাদানগুলি পপ করি তখন সর্বোচ্চ অগ্রাধিকারযুক্ত উপাদানগুলি প্রথমে পপ করা হয়। অগ্রাধিকার সারির মতো, এখানে বিভিন্ন ধরণের 10 টি ধারক রয়েছে এসটিএল । একটি ধারক এমন একটি বস্তু যা ডেটা সঞ্চয় করে। এসটিএল পাত্রে টেমপ্লেট শ্রেণীর সাহায্যে প্রয়োগ করা হয় তাই বিভিন্ন ধরণের ডেটা ধরে রাখতে এটি কাস্টমাইজ করা সহজ। এই পোস্টে আমরা অগ্রাধিকার সারিতে এবং এর সাথে সম্পর্কিত ধারণাগুলি বিস্তারিত আলোচনা করব discuss নিম্নলিখিত পয়েন্টারগুলিকে সি ++ নিবন্ধে এই অগ্রাধিকার সারিতে আচ্ছাদিত করা হবে,

সি ++ তে অগ্রাধিকার সারিতে এই নিবন্ধটি নিয়ে চলছে





এসটিএল এর উপাদান

এসটিএলে টেম্পলেট ক্লাস এবং ফাংশন রয়েছে যা ডেটা সংরক্ষণ এবং প্রক্রিয়াকরণের জন্য মানক পদ্ধতির হিসাবে ব্যবহার করা যেতে পারে। আসুন এসটিএলের উপাদানগুলি নিয়ে আলোচনা করি

ধারক- এসটিএলে 10 ধরণের কনটেইনার সংজ্ঞায়িত করা হয়েছে এবং এগুলি 3 টি বিভাগে শ্রেণিবদ্ধ করা হয়েছে। এই 3 টির মধ্যে, অগ্রাধিকারের সারিগুলি উত্পন্ন ধারকটির বিভাগের অন্তর্গত। প্রতিটি ধারক শ্রেণীর নিজস্ব ক্রিয়াকলাপ রয়েছে যা ডেটা ম্যানিপুলেট করতে ব্যবহৃত হতে পারে।



অ্যালগরিদম - একটি অ্যালগরিদম এমন একটি পদ্ধতি যা কনটেইনার অবজেক্টে উপস্থিত ডেটা প্রক্রিয়া করার জন্য ব্যবহৃত হয়। এসটিএল বিভিন্ন ধরণের অ্যালগোরিদম সরবরাহ করে যা প্রাথমিককরণ, অনুসন্ধান, বাছাইকরণ, মার্জিং, অনুলিপিতে ব্যবহার করা যেতে পারে। অ্যালগরিদমগুলি টেম্পলেট ফাংশনগুলির সাহায্যে প্রয়োগ করা হয়।

Iterator- একটি পুনরাবৃত্তকারী এমন একটি বস্তু যা পাত্রে কোনও উপাদানটির দিকে নির্দেশ করে। আইট্রেটাররা কোনও ধারকের সামগ্রীর মধ্য দিয়ে চলতে সহায়তা করতে পারে। আইট্রেটারগুলি পয়েন্টারের মতো যা বাড়ানো এবং হ্রাস করা যেতে পারে। এটি অ্যালগরিদম এবং ধারকটির মধ্যে একটি লিঙ্ক হিসাবে কাজ করে। আইট্রেটারগুলি একটি পাত্রে সঞ্চিত ডেটা ম্যানিপুলেট করার জন্য ব্যবহৃত হয়।

সি ++ বাছাই তালিকা

সি ++ তে অগ্রাধিকার সারিতে এই নিবন্ধটি নিয়ে চলছে



গাদা এবং অগ্রাধিকার সারি

আমরা আগে দেখেছি অগ্রাধিকার সারি উত্পন্ন ধারকগুলির বিভাগের অন্তর্গত। এই বিভাগের অন্যান্য সদস্যরা স্ট্যাক এবং সারি। এই উত্সযুক্ত পাত্রে কনটেইনার অ্যাডাপ্টার হিসাবেও পরিচিত।

স্ট্যাক, সারি এবং অগ্রাধিকারের সারিটি বিভিন্ন অনুক্রমের ধারক থেকে তৈরি হওয়ায় ডায়ারটেড কনটেইনার হিসাবে পরিচিত। এই ধারকরা কোনও ধরণের পুনরাবৃত্তিকে সমর্থন করে না যা তারা ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় না।

একটি অগ্রাধিকার সারি ঠিক কি?

সহজ কথায়, এটি একটি ধারক যা আমরা ডেটা সঞ্চয় করতে ব্যবহার করি। সঞ্চিত ডাটাগুলির প্রতিটি উপাদানকে কিছু অগ্রাধিকার দেওয়া হয় যা একটি যৌক্তিক ক্রমে ডেটা সংরক্ষণে আমাদের সহায়তা করতে পারে।
বাক্য গঠন:অগ্রাধিকার_ক্যু ভেরিয়েবল_নাম

অগ্রাধিকারের সারিটি ব্যবহার করার জন্য প্রোগ্রামটিতে একটি শিরোনাম ফাইল অন্তর্ভুক্ত করা গুরুত্বপূর্ণ।

জাভা বস্তুর একটি অ্যারে তৈরি করে

সি ++ তে অগ্রাধিকারের সারিউদাহরণস্বরূপ, আমরা যদি পুশ ফাংশন ব্যবহার করে আমাদের অগ্রাধিকারের কাতারে 2, 10, 30, 5, 6 যোগ করি এবং তারপরে পপ ফাংশন ব্যবহার করে উপাদানগুলিকে পপ করি তবে আউটপুট 30, 10, 6, 5, 2 হবে।

ঠিক আছে, সুতরাং এখন আমরা উদ্দেশ্য বা অগ্রাধিকার সারি ব্যবহার জানি। তবে এটি কীভাবে জানা গেল 30> 10? এটি কি কোনও ধরণের বাছাই করছে? এই মুহুর্তে গাদা ছবিতে আসে। বিস্তারিতভাবে গাদা সম্পর্কে জানতে এই নিবন্ধটি পড়ুন।

গাদা - গাদা গাছের মতো কাঠামো। সন্তানের উপাদান নোডগুলি কীভাবে পিতামাত নোডগুলির সাথে সম্মানের সাথে একটি স্তূপে সাজানো হয় তার উপর ভিত্তি করে, স্তূপগুলি 2 ভাগে বিভক্ত করা হয়

এক. ন্যূনতম গাদা মিন হিপ-এ, প্যারেন্ট নোডের মান শিশু নোডের মানের থেকে কম বা সমান।

ঘ। সর্বোচ্চ গাদা- ম্যাক্স হিপ-এ, প্যারেন্ট নোডের মান শিশু নোডের মানের থেকে বড় বা সমান।

বিঃদ্রঃ- অগ্রাধিকার সারিতে কিছু বাছাই করা অ্যালগরিদম ব্যবহার করে উপাদানগুলিকে সাজানো হয় না পরিবর্তে এটি একটি গাদা আকারে ডেটা সংরক্ষণ করে stored

সি ++ তে অগ্রাধিকার সারিতে এই নিবন্ধটি নিয়ে চলছে

অগ্রাধিকারের সারির সমস্ত উপাদান মুদ্রণ করা হচ্ছে

অগ্রাধিকারের সারির মূল কথাগুলি বোঝার পরে, আসুন একটি অগ্রাধিকার সারিতে সর্বাধিক ব্যবহৃত পদ্ধতিগুলি বোঝার জন্য প্রোগ্রামগুলি বাস্তবায়ন করা যাক

# অন্তর্ভুক্ত # নেমস্পেস ব্যবহার করে স্ট্যান্ড ইন্ট মেইন () {অগ্রাধিকার_কিউ অগ্রাধিকার_প্রিয়_ক.পুশ (10) প্রাইমার_ক.পুশ (30) প্রাইম_কি.পুষ (6) প্রিয়ার_কি.পুষ (2) প্রিয়ার_কি.পুষ (15) প্রিয়ার_কি.পুষ (() থাকাকালীন (প্রিয়ার_কি.ইম্পটি () == মিথ্যা) out কোট<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

আউটপুট:

30 15 10 9 6 2

উপরের প্রোগ্রামে আমরা পপ (), শীর্ষ () এবং পুশ () ফাংশন ব্যবহার করি যা বেশিরভাগ সময় অগ্রাধিকারের সারিতে কাজ করার সময় ব্যবহৃত হয়। আসুন আমরা কয়েকটি অগ্রাধিকার সারি সহ যে পদ্ধতিগুলি ব্যবহার করতে পারি তার কিছু নজর দেওয়া যাক

আকার (): এই ফাংশনটি অগ্রাধিকারের সারির আকার প্রদান করে

খালি (): এই ক্রিয়াকলাপটি অগ্রাধিকারের সারিটি খালি কিনা তা পরীক্ষা করতে ব্যবহৃত হয়। এটি অগ্রাধিকারের সারিতে খালি খালি রয়েছে returns

টেবিল 10 মধ্যে ডেটা মিশ্রন

() চাপুন: অগ্রাধিকার সারিতে একটি উপাদান সন্নিবেশ করান।

পপ (): এই ফাংশনটি অগ্রাধিকারের সারির শীর্ষ উপাদানটিকে সরিয়ে দেয় যা সর্বোচ্চ অগ্রাধিকার সহ উপাদান।

অদলবদল (): এই ফাংশনটি অগ্রাধিকারের সারির উপাদানগুলিকে অন্য একটি অগ্রাধিকার সারির সাথে অদলবদল করে। ফাংশনটি প্যারামিটার হিসাবে একটি অগ্রাধিকার সারি নেয়।

এমপ্লেস (): এই ফাংশনটি অগ্রাধিকার সারির শীর্ষে একটি উপাদান যুক্ত করতে ব্যবহৃত হয়েছিল।

আসুন আরও একটি প্রোগ্রাম দেখুন।

# অন্তর্ভুক্ত # নেমস্পেস ব্যবহার করে স্ট্যান্ড ইন্ট মেইন () {অগ্রাধিকার_কিউ অগ্রাধিকার_প্রিয়_ক.পুশ (10) প্রাইমার_ক.পুশ (30) প্রাইম_কি.পুষ (6) প্রিয়ার_কি.পুষ (2) প্রিয়ার_কি.পুষ (15) প্রিয়ার_কি.পুষ (() থাকাকালীন (প্রিয়ার_কি.ইম্পটি () == মিথ্যা) out কোট<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

আউটপুট:

2 6 7 9 10 15 30

এটির সাথে সাথে আমরা সি ++ নিবন্ধে এই অগ্রাধিকার সারির শেষের দিকে চলে এসেছি। আপনি যদি আরও শিখতে চান তবে এটি দেখুন এডুরেকা, একটি বিশ্বস্ত অনলাইন লার্নিং সংস্থা। এডুরেকার জাভা জে 2 ইই এবং এসওএ প্রশিক্ষণ এবং শংসাপত্রের কোর্সটি হিবারনেট ও স্প্রিংয়ের মতো বিভিন্ন জাভা ফ্রেমওয়ার্কের পাশাপাশি আপনাকে মূল এবং উন্নত জাভা উভয় ধারণার জন্য প্রশিক্ষণের জন্য তৈরি করা হয়েছে।

আমাদের জন্য একটি প্রশ্ন আছে? দয়া করে এই ব্লগের মন্তব্য বিভাগে এটি উল্লেখ করুন এবং আমরা যত তাড়াতাড়ি সম্ভব আপনার কাছে ফিরে আসব।