STL-এ List কী?
List হল এমন কন্টেইনার যা সিকোয়েন্সের যেকোনো স্থানে কনস্ট্যান্ট টাইমে ইন্সারশন এবং ডিলিশন করার অনুমতি দেয়। লিস্টগুলো ডাবলি লিংকড লিস্ট হিসেবে ইমপ্লিমেন্ট করা হয়। লিস্ট নন-কন্টিগ্যুয়াস মেমোরি অ্যালোকেশন অনুমোদন করে। অ্যারে, ভেক্টর এবং ডিকের চেয়ে লিস্ট যেকোনো পজিশনে এলিমেন্ট ইন্সার্ট, এক্সট্রাক্ট এবং মুভ করার ক্ষেত্রে ভালো পারফরম করে। লিস্টে এলিমেন্টে ডায়রেক্ট অ্যাক্সেস ধীরগতির এবং লিস্ট forward_list-এর সাথে সাদৃশ্য রেখেছে, কিন্তু forward_list অবজেক্টগুলো সিঙ্গলি লিংকড লিস্ট এবং সেগুলো শুধু ফরওয়ার্ড দিয়ে ইটারেট করা যায়।
remove() কী?
এই ফাংশনটি ফাংশনে প্যারামিটার হিসেবে পাস করা দেওয়া ভ্যালুটিকে রিমুভ করতে ব্যবহৃত হয়।
সিনট্যাক্স
listname.remove(val);
প্যারামিটার
val − এটি রিমুভ করার ভ্যালুকে ডিফাইন করে।
উদাহরণ
Input List: 1 2 3 3 4 5 Output New List: 1 2 4 5 (এই লিস্টে এলিমেন্ট 3 রিমুভ হয়েছে) Input List: 5 6 7 8 8 8 9 Output New List: 5 7 8 8 8 9 (এই লিস্টে এলিমেন্ট 6 রিমুভ হয়েছে)
অনুসরণ করা পদ্ধতি
প্রথমে লিস্ট ডিক্লেয়ার করুন।
তারপর লিস্ট প্রিন্ট করুন।
তারপর remove() ফাংশন ডিফাইন করুন।
উপরের পদ্ধতি ব্যবহার করে দেওয়া এলিমেন্টটি রিমুভ করা যায়।
সম্পূর্ণ কোড উদাহরণ
// C++ code to demonstrate the working of list remove() function in STL
#include <iostream>
#include <list>
using namespace std;
int main() {
list<int> list = { 21, 24, 28, 26, 27, 25 };
// print the list
cout << " list: ";
for(auto x = list.begin(); x != list.end(); ++x)
cout << *x << " ";
// defining remove() function
list.remove(27);
cout << " New List: ";
for(x = list.begin(); x != list.end(); ++x)
cout << ' ' << *x;
return 0;
}
আউটপুট
Input - List: 21 24 28 26 27 25 Output - New List: 21 24 28 26 25 Input – List: 45 46 47 48 49 50 Output – New List: 45 46 48 49 50
remove_if() ফাংশন কী?
এই ফাংশনটি उन ভ্যালুগুলো রিমুভ করতে ব্যবহৃত হয় যেগুলো প্রিডিকেটের জন্য true রিটার্ন করে বা প্যারামিটার হিসেবে পাস করা কন্ডিশনের জন্য true রিটার্ন করে।
সিনট্যাক্স
listname.remove_if(predicate)
প্যারামিটার
predicate − এটি প্যারামিটার হিসেবে পাস করা একটি কন্ডিশনাল ডিফাইন করে।
উদাহরণ
Input – List: 5 6 7 8 9 10 Output – New List: 5 7 9 (এই লিস্টে সব ইভেন এলিমেন্ট রিমুভ করা হয়েছে) Input – List: 5 10 15 20 25 30 Output – New List: 5 15 25 (এই লিস্টে ১০ দিয়ে বিভাজ্য সব এলিমেন্ট রিমুভ করা হয়েছে)
অনুসরণ করা পদ্ধতি
প্রথমে প্রিডিকেট ফাংশন ডিক্লেয়ার করুন।
তারপর লিস্ট ডিক্লেয়ার করুন।
তারপর লিস্ট প্রিন্ট করুন।
তারপর remove_if() ফাংশন ডিক্লেয়ার করুন।
উপরের পদ্ধতি ব্যবহার করে যেকোনো দেওয়া কন্ডিশনে এলিমেন্ট রিমুভ করা যায়। remove_if() ফাংশন ডিক্লেয়ার করার সময় প্রিডিকেট প্যারামিটার হিসেবে পাস করা হয়।
সম্পূর্ণ কোড উদাহরণ
// C++ code to demonstrate the working of list remove_if() function in STL
#include <iostream>
#include <list>
using namespace std;
bool div3(const int& val) {
return (val % 3) == 0;
}
int main() {
list<int> list = { 2, 3, 4, 15, 9, 7, 21, 24, 13 };
cout << " List: ";
for(auto x = list.begin(); x != list.end(); ++x)
cout << *x << " ";
// declaring remove_if() function
list.remove_if(div3);
cout << " New List: ";
for(x = list.begin(); x != list.end(); ++x)
cout << " " << *x;
return 0;
}
আউটপুট
Input – List: 2 3 4 15 9 7 21 24 13 Output – New List: 2 4 7 13