এই আর্টিকেলে আমরা C++-এ list::resize() ফাংশনের কাজ, সিনট্যাক্স এবং উদাহরণ নিয়ে আলোচনা করব।
STL-এ List কী
List একটি ডেটা স্ট্রাকচার যা সিকোয়েন্সে যেকোনো জায়গায় কনস্ট্যান্ট টাইমে ইনসারশন এবং ডিলিশন করার সুবিধা দেয়। লিস্টগুলো ডাবলি লিংকড লিস্ট হিসেবে ইমপ্লিমেন্টেড। লিস্ট নন-কন্টিগ্যুয়াস মেমরি অ্যালোকেশন অনুমতি দেয়। লিস্ট অ্যarray, vector এবং deque-র চেয়ে যেকোনো পজিশনে এলিমেন্ট ইনসার্ট, এক্সট্র্যাক্ট এবং মুভ করার ক্ষেত্রে ভালো পারফর্ম করে। লিস্টে এলিমেন্টে ডায়রেক্ট অ্যাক্সেস ধীর এবং লিস্ট forward_list-এর সাথে মিল্টি-जুলتی, কিন্তু forward list অবজেক্টগুলো সিঙ্গলি লিংকড লিস্ট এবং সেগুলো শুধু ফরওয়ার্ডে ইটারেট করা যায়।
list::resize() কী?
list::resize() C++ STL-এ একটি বিল্ট-ইন ফাংশন যা হেডার ফাইলে ডিক্লেয়ার করা আছে। resize() লিস্ট কন্টেইনারের আকার পরিবর্তন করতে ব্যবহৃত হয়। এটি কন্টেইনারটি রিসাইজ করে, যাতে এটি ফাংশনের আর্গুমেন্টে দেওয়া সংখ্যক এলিমেন্ট ধারণ করে।
সিনট্যাক্স
list_name.resize(int n);
অথবা
list_name.resize(int n, const value_type &val);
এই ফাংশন এক বা দুটি প্যারামিটার গ্রহণ করতে পারে।
প্যারামিটার
n – এটি একটি ইন্টিজার টাইপ যা নতুন কন্টেইনারের আকার (এলিমেন্টের সংখ্যা) ডিফাইন করে।
val – वह অবজেক্ট যার কন্টেন্ট কন্টেইনারের সব খালি স্পেসে কপি করা হবে।
রিটার্ন ভ্যালু
এই ফাংশন কিছু রিটার্ন করে না। এটি শুধু কন্টেইনারটি রিসাইজ করে।
উদাহরণ
#include <bits/stdc++.h> using namespace std; int main(){ //create a list list<int> myList; //insert elements to the list myList.push_back(1); myList.push_back(2); myList.push_back(3); myList.push_back(4); //elemets in th list before Resize cout << "List elements are : "; for (auto i = myList.begin(); i!= myList.end(); i++) cout << *i << " "; //Resizing list myList.resize(5); cout<<"\nList after resize: "; for (auto i = myList.begin(); i!= myList.end(); i++) cout << *i << " "; //Resizing list again myList.resize(6); cout<<"\nList after resizing it again : "; for (auto i = myList.begin(); i != myList.end(); i++) cout << *i << " "; return 0; }আউটপুট
যদি উপরের কোডটি রান করানো হয় তবে নিচের আউটপুট জেনারেট হবে:
List elements are : 1 2 3 4 List after resize : 1 2 3 4 0 List after resizing it again : 1 2 3 4 0 0