C++ এ forward_list::cbefore_begin() ফাংশনের কাজ দেখানোর টাস্ক দেওয়া হয়েছে।
একটি ফরোয়ার্ড_লিস্ট কেবলমাত্র সাধারণ তালিকার বিপরীতে পরবর্তী উপাদানের সাথে সংযোগ রাখে যা পরবর্তী এবং পূর্ববর্তী উপাদানগুলির সাথে সংযোগ রাখে, যা উভয় দিকেই পুনরাবৃত্তি করতে সহায়তা করে। কিন্তু ফরওয়ার্ড_লিস্ট শুধুমাত্র ফরোয়ার্ডের দিকেই পুনরাবৃত্তি করতে পারে।
Forward_list::cbefore_begin() ফাংশন হল C++ স্ট্যান্ডার্ড টেমপ্লেট লাইব্রেরির একটি অংশ। এটি তালিকার প্রথম উপাদানের আগে অবস্থান পেতে ব্যবহৃত হয়।
এই ফাংশনটি কল করার জন্য
সিনট্যাক্স
Forward_List_Name.cbefore_begin();
পরামিতি
ফাংশন কোনো প্যারামিটার গ্রহণ করে না।
রিটার্ন মান
ফাংশনটি একটি ধ্রুবক পুনরাবৃত্তিকারী প্রদান করে যা ফরওয়ার্ড_লিস্টের প্রথম উপাদানের আগে অবস্থানে নির্দেশ করে।
উদাহরণ
Input: 8, 9, 32, 21 Output: 56 8 9 32 21
ব্যাখ্যা − এখানে আমরা 8,9,32,21 উপাদান সহ একটি ফরোয়ার্ড তালিকা তৈরি করেছি। তারপরে আমরা cbefore_begin() ফাংশনকে কল করি যেটি তালিকার প্রথম উপাদানের আগে অবস্থানে নির্দেশ করে এবং সেই অবস্থানটিকে itrator-এ সংরক্ষণ করে। তারপরে আমরা insert_after() ফাংশনটি প্রথম এলিমেন্টের আগে অবস্থানে 56 এলিমেন্ট সন্নিবেশ করার জন্য ব্যবহার করি, অর্থাৎ 8। সুতরাং যখন আমরা এটি প্রিন্ট করি, তখন আউটপুট তৈরি হয় 56 8 9 32 21, যা দেখায় যে 56 এর শুরুতে পাওয়া যায়। তালিকা এবং তাই cbefore_begin ফাংশন() সঠিকভাবে কাজ করেছে।
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি −
- প্রথমে একটি ফরওয়ার্ড_লিস্ট তৈরি করুন, আসুন int টাইপের "Lt" বলি এবং এটির কিছু মান নির্ধারণ করি।
- তারপর স্বয়ংক্রিয় টাইপের একটি বস্তু “itr” তৈরি করুন এবং এটিতে সংরক্ষণ করুন, cbefore_begin() ফাংশনটি কল করে পুনরাবৃত্তিকারী ফিরে আসে।
- তারপর তালিকার শুরুতে একটি নতুন উপাদান সন্নিবেশ করতে insert_after() ফাংশনটি ব্যবহার করুন। প্রথম আর্গুমেন্ট হিসাবে পুনরাবৃত্তিকারী “itr” এবং দ্বিতীয় হিসাবে ঢোকানো সংখ্যাটি পাস করুন।
- তারপর তালিকাটি মুদ্রণের জন্য একটি লুপ শুরু করুন
- তারপর end() এবং begin() ফাংশনের রিটার্ন ভ্যালু পাওয়ার জন্য ফর লুপের ভিতরে অটো টাইপের একটি বস্তু "itr" তৈরি করুন। begin() ফাংশন ব্যবহার করে তালিকার প্রথম উপাদান দিয়ে "itr" শুরু করুন।
- অতঃপর cend() ফাংশন ব্যবহার করে তালিকার শেষ উপাদানের সমান নয় "itr" লিখে ফর লুপের সমাপ্তি অবস্থা নির্দিষ্ট করুন।
- *itr প্রিন্ট করুন।
অ্যালগরিদম
Start Step 1->In function main() Initialize forward_list<int> Lt={} Initialize auto itr= Lt.cbefore_begin() Call insert_after(itr, new_element) Loop For auto itr = Ltcbegin() and itr != Lt.end() and itr++ Print *itr End Stop
উদাহরণ
#include<iostream> #include<forward_list> using namespace std; int main() { forward_list<int> Lt = { 40, 55, 67, 89 }; auto itr = Lt.cbefore_begin(); Lt.insert_after(itr, 77); for (auto itr = Lt.begin(); it != Lt.end(); ++itr) cout << *itr << " "; return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবে77 40 55 67 89