কম্পিউটার টিউটোরিয়াল

C++ STL-এ List assign() ফাংশন


C++-এ assign() ফাংশনটির কাজ দেখানো হলো এই টাস্ক।

list::assign() ফাংশনটি C++ স্ট্যান্ডার্ড টেমপ্লেট লাইব্রেরির অংশ। এটি একটি লিস্টে ভ্যালু অ্যাসাইন করতে এবং একটি লিস্ট থেকে অন্য লিস্টে ভ্যালু কপি করতে ব্যবহৃত হয়।

<list> হেডার ফাইলটি ইনক্লুড করতে হবে এই ফাংশন কল করার জন্য।

সিনট্যাক্স

নতুন ভ্যালু অ্যাসাইন করার সিনট্যাক্স নিচের মতো −

List_Name.assign(size,value)

সিনট্যাক্স

একটি লিস্ট থেকে অন্য লিস্টে ভ্যালু কপি করার সিনট্যাক্স নিচের মতো −

First_List.assign(Second_List.begin(),Second_list.end())

প্যারামিটার

ফাংশনটি দুটি প্যারামিটার নেয় −

প্রথমটি size, যা লিস্টের সাইজ প্রতিনিধিত্ব করে এবং দ্বিতীয়টি value, যা লিস্টের ভিতরে সংরক্ষণ করার ডেটা ভ্যালু প্রতিনিধিত্ব করে।

রিটার্ন ভ্যালু

ফাংশনটির কোনো রিটার্ন ভ্যালু নেই।

উদাহরণ

Input: Lt.assign(3,10) Output: The size of list Lt is 3. The elements of the list Lt are 10 10 10.

ব্যাখ্যা −

নিচের উদাহরণটি দেখাচ্ছে কিভাবে আমরা assign() ফাংশন ব্যবহার করে একটি লিস্টকে এর সাইজ এবং ভ্যালু দিতে পারি। লিস্ট ফাংশনের ভিতরে আমরা প্রথম যে ভ্যালু পাস করব সেটি লিস্টের সাইজ হবে, এই কেসে ৩ এবং দ্বিতীয় এলিমেন্টটি হল वो ভ্যালু যা লিস্টের প্রতিটি পজিশনে অ্যাসাইন হবে এবং এখানে সেটি ১০।

উদাহরণ

Input: int array[5] = { 1, 2, 3, 4 } Lt.assign(array,array+3) Output: The size of list Lt is 3. The elements of the list Lt are 1 2 3.

ব্যাখ্যা −

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

ইউজারকে শুধু অ্যারেতের নামটি প্রথম আর্গুমেন্ট হিসেবে assign() ফাংশনের ভিতরে পাস করতে হবে, এবং দ্বিতীয় আর্গুমেন্ট হওয়া উচিত অ্যারেতের নাম, তারপর একটি “+” সাইন এবং ইউজার যতগুলো এলিমেন্ট লিস্টে অ্যাসাইন করতে চায় সেটির সংখ্যা।

উপরের কেসে আমরা ৩ লিখলাম, তাই অ্যারেতে প্রথম তিনটি এলিমেন্ট লিস্টে অ্যাসাইন হবে।

যদি আমরা অ্যারেতে থাকা এলিমেন্টের চেয়ে বড় কোনো সংখ্যা লিখি, ধরুন ৬, তবে প্রোগ্রাম কোনো এরর দেখাবে না বরং লিস্টের সাইজ হবে ৬ এবং লিস্টে একস্ট্রা পজিশনগুলো ০ ভ্যালু দিয়ে অ্যাসাইন হবে।

নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতি −

  • প্রথমে একটি ফাংশন ShowList(list<int> L) তৈরি করুন যা লিস্টের এলিমেন্টগুলো ডিসপ্লে করবে।
  • একটি ইটারেটর তৈরি করুন, ধরুন itr যা লিস্টের ইনিশিয়াল এলিমেন্ট ধারণ করবে ডিসপ্লে করার জন্য।
  • লুপটি চলবে itr লিস্টের ফাইনাল এলিমেন্টে পৌঁছার পর্যন্ত।
  • তারপর main() ফাংশনের ভিতরে তিনটি লিস্ট তৈরি করুন list<int> ব্যবহার করে, ধরুন L1, L2 এবং L3 যাতে তারা int টাইপের ভ্যালু এক্সেপ্ট করে এবং একটি অ্যারে তৈরি করুন টাইপ int, ধরুন arr[] এবং এতে কিছু ভ্যালু দিন।
  • তারপর assign() ফাংশনটি ব্যবহার করুন লিস্ট L1-এ সাইজ এবং কিছু ভ্যালু অ্যাসাইন করতে এবং তারপর লিস্ট L1 কে ShowDisplay() ফাংশনে পাস করুন।
  • তারপর assign() ফাংশনটি ব্যবহার করুন লিস্ট L1-এর এলিমেন্টগুলো L2-এ কপি করতে এবং লিস্ট L2 কেও ShowList() ফাংশনে পাস করুন।
  • তারপর assign() ফাংশনটি ব্যবহার করুন অ্যারে arr[]-এর এলিমেন্টগুলো লিস্ট L3-এ কপি করতে এবং লিস্ট L3 কে DisplayList() ফাংশনে পাস করুন।

এলগরিদম

Start Step 1-> Declare function DisplayList(list<int> L) for showing list elements    Declare iterator itr    Loop For itr=L.begin() and itr!=L.end() and itr++    Print *itr    End Step 2-> In function main()    Declare lists L1,L2,L3    Initialize array arr[]    Call L1.assign(size,value)    Print L1.size();    Call function DisplayList(L1) to display L1    Call L2.assign(L1.begin(),L1.end())    Print L2.size();    Call function DisplayList(L2) to display L2    Call L3.assign(arr,arr+4)    Print L3.size();    Call function DisplayList(L3) to display L3 Stop

উদাহরণ

#include<iostream> #include<list> using namespace std; int ShowList(list<int> L) {    cout<<"The elements of the list are ";    list<int>::iterator itr;    for(itr=L.begin(); itr!=L.end(); itr++) {       cout<<*itr<<" ";    }    cout<<"\n"; } int main() {    list<int> L1;    list<int> L2;    list<int> L3;    int arr[10] = { 6, 7, 2, 4 };    //assigning size and values to list L1    L1.assign(3,20);    cout<<"The size of list L1 is "<<L1.size()<<"\n";    ShowList(L1);    //copying the elements of L1 into L3    L2.assign(L1.begin(),L1.end());    cout<<"The size of list is L2 "<<L2.size()<<"\n";    ShowList(L2);    //copying the elements of arr[] into list L3    L3.assign(arr,arr+4);    cout<<"The size of list is L3 "<<L3.size()<<"\n";    ShowList(L3);    return 0; }

আউটপুট

যদি উপরের কোডটি রান করি তবে নিচের আউটপুট জেনারেট হবে −

The size of list L1 is 3 The elements of the list are 20 20 20 The size of list L2 is 3 The elements of the list are 20 20 20 The size of list L3 is 4 The elements of the list are 6 7 2 4

ব্যাখ্যা

লিস্ট L1-এ আমরা assign() ফাংশনে সাইজ ৩ এবং ভ্যালু ২০ দিয়েছিলাম যেটি উপরের আউটপুট জেনারেট করল।

তারপর আমরা লিস্ট L1-এর এলিমেন্টগুলো L2-এ কপি করলাম যেটি L2 কে L1 এর মতো একই সাইজ এবং ভ্যালু দিয়েছে আউটপুটে দেখানো যাচ্ছে।

তারপর আমরা assign ফাংশনটি ব্যবহার করলাম অ্যারে arr[]-এর সব এলিমেন্ট কপি করার জন্য যেটি L3-এর সাইজ ৪ করে দিয়েছে এবং এর এলিমেন্টগুলো অ্যারেতে থাকা এলিমেন্টগুলোর মতো করে আউটপুটে দেখানো যাচ্ছে।


  1. C++ STL-এ List reverse ফাংশন

  2. C++ STL-এ list emplace() ফাংশন

  3. C++ STL-এ list back() ফাংশন

  4. C++ STL-এ deque assign() ফাংশন