এই আর্টিকেলে আমরা C++ STL-এ deque::at() এবং deque::swap() ফাংশনের সিনট্যাক্স, কাজ এবং রিটার্ন ভ্যালু আলোচনা করব।
deque::at() এবং deque::swap() ফাংশন STL-এ কী?
Deque বা Double ended queues নামানুসারে, সিকোয়েন্স কন্টেইনার যা দুটি এন্ডে এক্সপ্যান্ড বা কন্ট্র্যাক্ট করা যায়। ইউজার সহজে যেকোনো এন্ড থেকে ডেটা ইনসার্ট করতে পারে এবং একইভাবে যেকোনো এন্ড থেকে ডিলিট করতে পারে। এগুলো ভেক্টরের মতো, কিন্তু একমাত্র পার্থক্য হলো ভেক্টরের বিপরীতে এখানে কন্টiguous স্টোরেজ এলোকেশন গ্যারান্টি করা হয় না। তবুও ইন্সারশন এবং ডিলিশনের ক্ষেত্রে Deque দুটি এন্ডে আরও দক্ষ।
deque::at()
at() ফাংশনটি প্যারামিটার হিসেবে দেওয়া নির্দিষ্ট পজিশনে উপস্থিত এলিমেন্টের রেফারেন্স প্রদান করতে ব্যবহৃত হয়।
সিনট্যাক্স
dequename.at(position of element)
প্যারামিটার
এলিমেন্টের পজিশন
রিটার্ন ভ্যালু
দেওয়া পজিশনে উপস্থিত এলিমেন্টের ডায়রেক্ট রেফারেন্স।
উদাহরণ
Input : adeque = 1, 3, 4, 5, 8 adeque.at(3); Output : 5 Input : adeque = 1, 3, 5, 7,9 adeque.at(2); Output : 5
উদাহরণ কোড
#include <deque> #include <iostream> using namespace std; int main(){ deque<int> adeque; adeque.push_back(1); adeque.push_back(3); adeque.push_back(4); adeque.push_back(5); adeque.push_back(8); cout << adeque.at(3); return 0; }
আউটপুট
উপরোক্ত কোড রান করলে নিচের আউটপুট জেনারেট হবে −
5
deque::swap()
swap() ফাংশনটি একই টাইপ এবং একই আকারের দুটি deque-এর এলিমেন্টগুলো ইন্টারচেঞ্জ বা স্ব্যাপ করতে ব্যবহৃত হয়।
সিনট্যাক্স
Deque1name.swap(deque2name)
প্যারামিটার
প্যারামিটার থাকে সেই deque-এর নাম जिसके সাথে deque1-এর কন্টেন্টগুলো স্ব্যাপ করতে হবে।
রিটার্ন ভ্যালু
দুটি deque-এর সব এলিমেন্ট ইন্টারচেঞ্জ বা স্ব্যাপ হয়।
উদাহরণ
Input : adeque = {1, 3, 4, 5, 8} bdeque = {2, 6, 7, 9, 0} adeque.swap(bdeque); Output : adeque = {2, 6, 7, 9, 0} bdeque = {1, 3, 4, 5, 8}
উদাহরণ কোড
#include <deque> #include <iostream> using namespace std; int main(){ // deque container declaration deque<int> adeque{ 1, 2, 3, 4 }; deque<int> bdeque{ 3, 5, 7, 9 }; // using swap() function to swap elements of deques adeque.swap(bdeque); // code for printing the elemets of adeque cout << "adeque = "; for (auto it = adeque.begin(); it < adeque.end(); ++it) cout << *it << " "; // code for printing the elemets of bdeque cout << endl << "bdeque = "; for (auto it = bdeque.begin(); it < bdeque.end(); ++it) cout << *it << " "; return 0; }
আউটপুট
উপরোক্ত কোড রান করলে নিচের আউটপুট জেনারেট হবে
adeque = {2, 6, 7, 9, 0} bdeque = {1, 3, 4, 5, 8}