C++-এ forward_list assign() ফাংশনটির কাজ দেখানো হলো এই টাস্ক।
একটি forward_list শুধু পরবর্তী উপাদানের সাথে লিংক রাখে, সাধারণ লিস্টের মতো নয় যা পরবর্তী এবং পূর্ববর্তী উভয় উপাদানের সাথে লিংক রাখে, যা ফরওয়ার্ড এবং ব্যাকওয়ার্ড উভয় দিকেই ইটারেশন করতে সাহায্য করে। কিন্তু forward_list শুধু ফরওয়ার্ড দিকেই ইটারেট করতে পারে।
forward_list::assign() ফাংশনটি C++ স্ট্যান্ডার্ড টেমপ্লেট লাইব্রেরির অংশ। এটি একটি ফরওয়ার্ড লিস্টের ভিতরে উপাদান ইনসার্ট করতে ব্যবহৃত হয় এবং যদি লিস্টে ইতিমধ্যে কিছু উপাদান থাকে তবে সেগুলো ইউজার দ্বারা যোগ করা নতুন উপাদানগুলোর দ্বারা রিপ্লেস করা হয়।
<forward_list> হেডার ফাইলটি ইনক্লুড করতে হবে এই ফাংশন কল করার জন্য।
সিনট্যাক্স
এই ফাংশনের ৩ টাইপ সিনট্যাক্স আছে। প্রতিটি ভিন্ন মেথডের জন্য −
- Forward_list_name.assign(initializer_list);
- Forward_list_name.assign(iterator itr1 , iterator itr2);
- Forward_list_name.assign(count, value);
প্যারামিটার
Initializer_list − প্রথম কেসে ফরওয়ার্ড লিস্টে সেই ভ্যালুগুলো আসবে যা ইনিশিয়ালাইজার লিস্ট হিসেবে পাস করা হয়েছে একই অর্ডারে।
Iterator − দ্বিতীয় কেসে ফরওয়ার্ড লিস্টে সেই ভ্যালুগুলো আসবে যা itr1 এবং itr2 ইটারেটরগুলো দ্বারা পয়েন্ট করা ভ্যালুগুলোর মধ্যে আছে। এতে itr1 দ্বারা পয়েন্ট করা ভ্যালু ইনক্লুড থাকবে কিন্তু itr2 দ্বারা পয়েন্ট করা ভ্যালু ইনক্লুড থাকবে না।
count and value − তৃতীয় কেসে প্যারামিটার “count” বলতে বোঝায় ফরওয়ার্ড লিস্টে ইনসার্ট করা উপাদানগুলোর সংখ্যা এবং “value” বলতে বোঝায় প্রতিটি উপাদানের জন্য বসানো হবে এমন ভ্যালু।
position, that represents the position at which the new element has to be placed and value, that represents the element that has to be inserted inside the list.
রিটার্ন ভ্যালু
ফাংশনটি কোনো ভ্যালু রিটার্ন করে না।
উদাহরণ
Input: assign(5,1) Output: 1 1 1 1 1
ব্যাখ্যা −
এখানে আমরা Lt নামে একটি ফরওয়ার্ড লিস্ট তৈরি করলাম টাইপ int। তারপর assign ফাংশনটি ব্যবহার করলাম count এবং value প্যারামিটার দিয়ে লিস্টে ভ্যালু অ্যাসাইন করতে।
এটি লিস্ট “Lt”-কে ৫টি উপাদান দিয়েছে প্রতিটির ভ্যালু ১, যেটি আউটপুট ১ ১ ১ ১ ১ জেনারেট করল।
নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতি −
- প্রথমে তিনটি ফরওয়ার্ড লিস্ট তৈরি করুন টাইপ int, ধরুন “Lt1”, “Lt2” এবং “Lt3”।
- তারপর assign() ফাংশনটি ব্যবহার করুন Lt1-এ উপাদান অ্যাসাইন করতে ইনিশিয়ালাইজার লিস্ট প্যারামিটার হিসেবে পাস করে।
- তারপর assign ফাংশনটি ব্যবহার করুন Lt2-এ উপাদান অ্যাসাইন করতে count এবং value প্যারামিটার হিসেবে পাস করে।
- তারপর assign ফাংশনটি ব্যবহার করুন Lt3-এ উপাদান অ্যাসাইন করতে দুটি ইটারেটর প্যারামিটার হিসেবে পাস করে, ধরুন Lt1-এর ইনিশিয়াল এবং ফাইনাল পজিশনগুলোতে পয়েন্ট করে।
এলগরিদম
Start Step 1->In function main() Declare forward_lists<int> Lt1,Lt2,Lt3 Call Lt1.assign(initialize list) Call Lt2.assign(count,value) Call Lt3.assign(L1.begin(),Lt2.end()) Stop
উদাহরণ
#include <forward_list> #include <iostream> using namespace std; int main() { forward_list<int> Lt1; forward_list<int> Lt2; forward_list<int> Lt3; //assigning elements to Lt1 Lt1.assign({4,9,7,8}); //assigning elements to Lt2 Lt2.assign(3,6); //assigning elements to Lt2 Lt3.assign(Lt1.begin(),Lt1.end()); // Display the lists cout << "Lt1: "; for (int& D : Lt1) cout << D << " "; cout << endl; // Display Lt2 cout << "Lt2: "; for (int& D : Lt2) cout << D << " "; // Display Lt3 cout << "Lt3: "; for (int& D : Lt3) cout << D << " "; return 0; }
আউটপুট
যদি উপরের কোডটি রান করি তবে নিচের আউটপুট জেনারেট হবে −
Lt1: 4 9 7 8 Lt2: 6 6 6 Lt3: 4 9 7 8