STL-এ List কী?
List হল এমন কন্টেইনার যা সিকোয়েন্সের যেকোনো স্থানে কনস্ট্যান্ট টাইমে ইন্সারশন এবং ডিলিশন করার অনুমতি দেয়। লিস্টগুলো ডাবলি লিংকড লিস্ট হিসেবে ইমপ্লিমেন্ট করা হয়। লিস্ট নন-কন্টিগ্যুয়াস মেমোরি অ্যালোকেশন অনুমোদন করে। অ্যারে, ভেক্টর এবং ডিকের চেয়ে লিস্ট যেকোনো পজিশনে এলিমেন্ট ইন্সার্ট, এক্সট্রাক্ট এবং মুভ করার ক্ষেত্রে ভালো পারফরম করে। লিস্টে এলিমেন্টে ডায়রেক্ট অ্যাক্সেস ধীরগতির এবং লিস্ট forward_list-এর সাথে সাদৃশ্য রেখেছে, কিন্তু forward_list অবজেক্টগুলো সিঙ্গলি লিংকড লিস্ট এবং সেগুলো শুধু ফরওয়ার্ড দিয়ে ইটারেট করা যায়।
operator = এর ব্যবহার কী?
এই অপারেটরটি লিস্টে নতুন এলিমেন্ট অ্যাসাইন করতে ব্যবহৃত হয় ইতিমধ্যে এক্সিস্টিং এলিমেন্ট রিপ্লেস করে। এবং এটি নতুন লিস্টের সাইজ কন্টেন্ট অনুযায়ী মডিফাই করে। যে অন্য কন্টেইনার থেকে আমরা নতুন এলিমেন্ট নিচ্ছি সেটার ডেটা টাইপ প্রথম কন্টেইনারের সাথে একই হতে হবে।
সিনট্যাক্স: listname1 = listname2
উদাহরণ
Input List1: 50 60 80 90 List2: 90 80 70 60 Output List1: 90 80 70 60 Input List1: E N E R G Y List2: C A P T I O N Output List1: C A P T I O N
অনুসরণ করা পদ্ধতি
প্রথমে দুটি লিস্ট ইনিশিয়ালাইজ করুন।
তারপর = অপারেটর ব্যবহার করুন।
তারপর নতুন লিস্ট প্রিন্ট করুন।
উপরের পদ্ধতি ব্যবহার করে লিস্টে নতুন এলিমেন্ট অ্যাসাইন করা যায়। এই অপারেটরের কাজ সওয়াপ() ফাংশনের মতো, এই অপারেটর list2-এর কন্টেন্ট list1-এর সাথে সওয়াপ করে, কিন্তু list1-এর কন্টেন্ট list2-এর সাথে সওয়াপ করে না এবং list1-এ নতুন কন্টেন্ট অ্যাসাইন করে।
সম্পূর্ণ কোড উদাহরণ ১
// C++ code to demonstrate the working of list = operator in STL
#include <iostream>
#include <list>
using namespace std;
int main() {
// initializing two lists
list<int> list1 = { 10, 20, 30, 40, 50 };
cout << " List1: ";
for(auto x = list1.begin(); x != list1.end(); ++x)
cout << *x << " ";
list<int> list2 = { 40, 50, 60, 70, 80 };
cout << " List2: ";
for(auto x = list2.begin(); x != list2.end(); ++x)
cout << *x << " ";
list1 = list2;
// printing new content of list
cout << " New contents of List1 is : ";
for(auto x = list1.begin(); x != list1.end(); ++x)
cout << *x << " ";
return 0;
}
আউটপুট
Input - List1: 10 20 30 40 50 List2: 40 50 60 70 80 Output - New content of List1 is: 40 50 60 70 80
সম্পূর্ণ কোড উদাহরণ ২
// C++ code to demonstrate the working of list = operator in STL
#include <iostream>
#include <list>
using namespace std;
int main() {
// initializing two lists
list<char> list1 = { 'C', 'H', 'A', 'R', 'G', 'E', 'R' };
cout << " List1: ";
for(auto x = list1.begin(); x != list1.end(); ++x)
cout << *x << " ";
list<char> list2 = { 'P', 'O', 'I', 'N', 'T' };
cout << " List2: ";
for(auto x = list2.begin(); x != list2.end(); ++x)
cout << *x << " ";
list1 = list2;
// printing new content of list
cout << " New contents of List1 is : ";
for(auto x = list1.begin(); x != list1.end(); ++x)
cout << *x << " ";
return 0;
}
আউটপুট
Input - List1: C H A R G E R List2: P O I N T Output - New contents of List1 is: P O I N T