এই আর্টিকেলে আমরা C++-এ forward_list::operator =-এর কাজকর্ম, সিনট্যাক্স এবং উদাহরণ নিয়ে আলোচনা করব।
STL-এ Forward_list কী?
ফরওয়ার্ড লিস্ট হলো একটি সিকোয়েন্স কন্টেইনার যা সিকোয়েন্সের যেকোনো স্থানে কনস্ট্যান্ট টাইমে ইন্সার্ট এবং ইরেজ অপারেশন করার সুবিধা দেয়। ফরওয়ার্ড লিস্ট বাস্তবে একটি সিঙ্গলি-লিংকড লিস্ট হিসেবে ইমপ্লিমেন্ট করা হয়। প্রতিটি এলিমেন্টের পরবর্তী এলিমেন্টের সাথে লিংক থাকায় অর্ডারিং বজায় থাকে।
forward_list::operator = কী?
forward_list::operator = একটি ফরওয়ার্ড লিস্ট কন্টেইনারের নতুন মান অ্যাসাইন করতে ব্যবহৃত হয়, যা ইতিমধ্যে থাকা মানগুলোর plaats নেয়। এই অপারেটর নতুন মান অনুযায়ী ফরওয়ার্ড লিস্ট কন্টেইনারের সাইজও মডিফাই করে।
সিনট্যাক্স
forward_container1 = forward_container2;
এই ফাংশন একই টাইপের অন্য একটি ফরওয়ার্ড লিস্ট কন্টেইনার গ্রহণ করে।
রিটার্ন ভ্যালু
এটি *this পয়েন্টার রিটার্ন করে।
উদাহরণ
নিচের কোডে আমরা দুটি ফরওয়ার্ড লিস্ট তৈরি করব, সেগুলোতে এলিমেন্ট ইন্সার্ট করব, এবং তারপর = অপারেটর ব্যবহার করে ফরওয়ার্ড লিস্ট ১-এর এলিমেন্টগুলোর ওপর ফরওয়ার্ড লিস্ট ২-এর এলিমেন্টগুলো কপি করব।
#include <forward_list>
#include <iostream>
using namespace std;
int main() {
forward_list<int> forwardList1 = {10, 20, 30};
forward_list<int> forwardList2 = {0, 1, 2, 3};
forwardList1 = forwardList2;
cout << "my forwardList1 after using = operator with forwardList2\n";
for (auto i = forwardList1.begin(); i != forwardList1.end(); ++i)
cout << ' ' << *i;
return 0;
}
আউটপুট
উপরোক্ত কোড রান করলে নিচের আউটপুট পাওয়া যাবে:
my forwardList1 after using = operator with forwardList2 0 1 2 3
দ্বিতীয় উদাহরণ
এখানে আমরা যাচাই করব যে অ্যাসাইনমেন্টের পর ফরওয়ার্ড লিস্ট ২ পরিবর্তিত হয় কিনা।
#include <forward_list>
#include <iostream>
using namespace std;
int main() {
forward_list<int> forwardList1 = {10, 20, 30};
forward_list<int> forwardList2 = {0, 1, 2, 3};
forwardList1 = forwardList2;
cout << "my forwardList1 after using = operator with forwardList2\n";
for (auto i = forwardList1.begin(); i != forwardList1.end(); ++i)
cout << ' ' << *i;
cout << "\n my forwardList2 after using = operator with forwardList1\n";
for (auto i = forwardList2.begin(); i != forwardList2.end(); ++i)
cout << ' ' << *i;
return 0;
}
আউটপুট
my forwardList1 after using = operator with forwardList2 0 1 2 3 my forwardList2 after using = operator with forwardList1 0 1 2 3
নোট: অ্যাসাইনমেন্ট অপারেটর সোর্স কন্টেইনার (forwardList2) কে কোনোভাবেই পরিবর্তন করে না; এটি কেবল ডেস্টিনেশন কন্টেইনার (forwardList1) কে আপডেট করে।