এই আর্টিকেলে আমরা C++-এ list::clear() ফাংশনের কাজ, সিনট্যাক্স এবং উদাহরণ নিয়ে আলোচনা করব।
STL-এ List কী?
List একটি ডেটা স্ট্রাকচার যা সিকোয়েন্সে যেকোনো জায়গায় কনস্ট্যান্ট টাইমে ইনসারশন এবং ডিলিশন করার সুবিধা দেয়। লিস্টগুলো ডাবলি লিংকড লিস্ট হিসেবে ইমপ্লিমেন্টেড। লিস্ট নন-কন্টিগ্যুয়াস মেমরি অ্যালোকেশন অনুমতি দেয়। লিস্ট অ্যarray, vector এবং deque-র চেয়ে যেকোনো পজিশনে এলিমেন্ট ইনসার্ট, এক্সট্র্যাক্ট এবং মুভ করার ক্ষেত্রে ভালো পারফর্ম করে। লিস্টে এলিমেন্টে ডায়রেক্ট অ্যাক্সেস ধীর এবং লিস্ট forward_list-এর সাথে মিলتی-जুলتی, কিন্তু forward list অবজেক্টগুলো সিঙ্গলি লিংকড লিস্ট এবং সেগুলো শুধু ফরওয়ার্ডে ইটারেট করা যায়।
clear() কী?
list::clear() C++ STL-এ একটি বিল্ট-ইন ফাংশন যা হেডার ফাইলে ডিক্লেয়ার করা আছে। list::clear(), পুরো লিস্টকে ক্লিয়ার করে। অন্য কথায়, clear() লিস্ট কন্টেইনারের সব এলিমেন্ট রিমুভ করে এবং কন্টেইনারের আকার 0 করে দেয়।
সিনট্যাক্স
list_name.clear();
এই ফাংশন কোনো প্যারামিটার গ্রহণ করে না।
রিটার্ন ভ্যালু
এই ফাংশন কিছু রিটার্ন করে না, শুধু কন্টেইনারের সব এলিমেন্ট রিমুভ করে।
উদাহরণ
নিচের কোডে আমরা লিস্টে এলিমেন্ট ইনসার্ট করব এবং তারপর clear ফাংশন প্রয়োগ করে পুরো লিস্টকে খালি করব।
#include <iostream> #include <list> using namespace std; int main(){ list<int> myList = { 10, 20, 30, 40, 50 }; cout<<"List before applying clear() function"; for (auto i = myList.begin(); i != myList.end(); ++i) cout << ' ' << *i; //applying clear() function to clear the list myList.clear(); for (auto i = myList.begin(); i!= myList.end(); ++i) cout << ' ' << *i; cout<<"\nlist is cleared "; return 0; }আউটপুট
যদি উপরের কোডটি রান করানো হয় তবে নিচের আউটপুট জেনারেট হবে:
List before applying clear() function 10 20 30 40 50 list is cleared
উদাহরণ
নিচের কোডে আমরা clear() ফাংশন ব্যবহার করে পুরো লিস্ট ক্লিয়ার করব এবং তারপর নতুন এলিমেন্ট রি-ইনসার্ট করে দেখাব।
#include <iostream> #include <list> using namespace std; int main (){ list<int> myList; std::list<int>::iterator i; myList.push_back (10); myList.push_back (20); myList.push_back (30); cout<<"List before applying clear() function"; for (auto i = myList.begin(); i != myList.end(); ++i) cout << ' ' << *i; myList.clear(); for (auto i = myList.begin(); i!= myList.end(); ++i) cout << ' ' << *i; cout<<"\nlist is cleared "; myList.push_back (60); myList.push_back (70); cout<<"\nelements in my list are: "; for (auto i=myList.begin(); i!=myList.end(); ++i) cout<< ' ' << *i; return 0; }যদি উপরের কোডটি রান করানো হয় তবে নিচের আউটপুট জেনারেট হবে:
List before applying clear() function 10 20 30 40 50 list is cleared Elements in my list are : 60 70