এই আর্টিকেলে আমরা C++ STL-এ deque::emplace() ফাংশনের কার্যকারিতা দেখব।
Deque কী?
Deque (Double Ended Queue) হলো সিকোয়েন্স কন্টেইনার যা উভয় দিক থেকে এক্সপ্যানশন এবং কন্ট্রাকশনের কার্যকারিতা প্রদান করে।
emplace() ফাংশন কী?
emplace() ফাংশনটি ডিকের নির্দিষ্ট পজিশনের আগে একটি নতুন এলিমেন্ট কনস্ট্রাক্ট করে ইনসার্ট করে এবং ডিকের সাইজ বাড়ায়।
সিনট্যাক্স
iterator emplace(const_iterator position, Args&&... args);
প্যারামিটার
- Position: কন্টেইনারে যেখানে নতুন এলিমেন্ট ইনসার্ট করা হবে সেটার পজিশন।
- Value (args): কন্টেইনারে ইনসার্ট করার নতুন ভ্যালু বা কনস্ট্রাক্টর আর্গুমেন্ট।
রিটার্ন ভ্যালু
নতুনভাবে ইনসার্ট করা এলিমেন্টের দিকে নির্দেশকারী একটি ইটারেটর রিটার্ন করে।
উদাহরণ ইনপুট-আউটপুট
Input: Deque: 96 97 98 100 Output: New Deque after inserting 99: 96 97 98 99 100 Input: Deque: C P T A I N Output: New Deque after inserting A: C A P T A I N
অ্যাপ্রোচ
- ডিক ডিক্লেয়ার করুন।
- ডিক প্রিন্ট করুন।
emplace()ফাংশন ডিফাইন করুন পজিশন এবং ভ্যালু দিয়ে।- নতুন এলিমেন্ট ইনসার্ট করার পর ডিক প্রিন্ট করুন।
উদাহরণ ১
// C++ code to demonstrate the working of deque::emplace()
#include <iostream>
#include <deque>
using namespace std;
int main() {
// initializing the deque
deque<int> dq = { 85, 87, 88, 89, 90 };
// print the deque
cout << "Deque: ";
for (auto x = dq.begin(); x != dq.end(); ++x)
cout << *x << " ";
// defining the emplace() function - inserting 86 before 87 (position begin()+1)
auto it = dq.emplace(dq.begin() + 1, 86);
// printing deque after inserting new element
cout << "\nNew Deque: ";
for (auto x = dq.begin(); x != dq.end(); ++x)
cout << *x << " ";
return 0;
}
আউটপুট
Deque: 85 87 88 89 90 New Deque: 85 86 87 88 89 90
উদাহরণ ২: ক্যারেক্টার ডিক
#include <iostream>
#include <deque>
using namespace std;
int main() {
// initializing deque
deque<char> dq = { 'L', 'A', 'C', 'K' };
cout << "Deque: ";
for (auto x = dq.begin(); x != dq.end(); ++x)
cout << *x << " ";
// defining the emplace() function - inserting 'B' at begin()
dq.emplace(dq.begin(), 'B');
// printing deque after inserting new element
cout << "\nNew Deque: ";
for (auto x = dq.begin(); x != dq.end(); ++x)
cout << *x << " ";
return 0;
}
আউটপুট
Deque: L A C K New Deque: B L A C K
সংশোধন: মূল কোডে deque<int> iterator x; এবং deque.emplace(deque.emplace()...) gibi ভুল সিনট্যাক্স ছিল। উপরের কোডগুলো সঠিক C++ সিনট্যাক্স অনুযায়ী লিখা হয়েছে।