কম্পিউটার টিউটোরিয়াল

C++ STL-এ deque::at() এবং deque::swap() ফাংশন

Deque কী?

Deque হল ডাবল এন্ডেড কিউ যা সিকোয়েন্স কন্টেইনার যেগুলো দুটি এন্ডে এক্সপ্যানশন এবং কন্ট্র্যাকশনের ফাংশনালিটি প্রদান করে। একটি কিউ ডেটা স্ট্রাকচার ইউজারকে শুধু END-এ ডেটা ইনসার্ট এবং FRONT থেকে ডেটা ডিলিট করার অনুমতি দেয়। বাস স্টপের কিউর аналоги ধরিয়ে দেখলে ব্যক্তি কিউর END-এ থেকে ইনসার্ট হতে পারে এবং FRONT-এ দাঁড়ানো ব্যক্তিটি প্রথমে রিমুভ হবে, যেখানে ডাবল এন্ডেড কিউতে ডেটার ইনসারশন এবং ডিলিশন উভয় এন্ডেই সম্ভব।

deque::at() কী?

deque::at() হল C++ STL-এ একটি বিল্ট-ইন ফাংশন যা হেডার ফাইলে ডিক্লেয়ার করা আছে। deque::at() একটি রেফারেন্স রিটার্ন করে যা ডিক-এ নির্দিষ্ট পজিশনে থাকা এলিমেন্টকে পয়েন্ট করতে ব্যবহৃত হয়। এই ফাংশন ফাংশন প্যারামিটার হিসেবে পাস করা পজিশনে থাকা এলিমেন্টে যায়। পজিশন ভ্যালু 0 থেকে শুরু হয়।

সিনট্যাক্স

mydeque.at(int position);

প্যারামিটার

এই ফাংশন এক প্যারামিটার গ্রহণ করে, সেটা হল वो পজিশন যেখানে আমরা পয়েন্ট করতে চাই।

রিটার্ন ভ্যালু

এটি ডিক কন্টেইনারের নির্দিষ্ট পজিশনে থাকা এলিমেন্টের একটি রেফারেন্স রিটার্ন করে।

উদাহরণ

Input: deque<int> mydeque = {10, 20, 30, 40}; mydeque.at(2);

আউটপুট

Element at 2 positions is 30.

সম্পূর্ণ কোড উদাহরণ

#include <deque>
#include <iostream>
using namespace std;

int main() {
    deque<int> myDeque;
    myDeque.push_back(90);
    myDeque.push_back(80);
    myDeque.push_back(70);
    myDeque.push_back(60);
    myDeque.push_back(50);
    myDeque.push_back(40);
    myDeque.push_back(30);
    myDeque.push_back(20);
    myDeque.push_back(10);
    for (int i = 0; i < myDeque.size(); ++i) {
        if (i % 2 == 0) {
            cout << myDeque.at(i);
            cout << " ";
        }
    }
    return 0;
}

আউটপুট

90 70 50 30 10

deque::swap() কী?

deque::swap() হল C++ STL-এ একটি বিল্ট-ইন ফাংশন যা হেডার ফাইলে ডিক্লেয়ার করা আছে। deque::swap() একটি ডিক কন্টেইনারের কন্টেন্ট অন্য একটি ডিক কন্টেইনারের সাথে সওয়াপ করতে ব্যবহৃত হয়। এই ফাংশন অন্য একটি ডিক কন্টেইনারের অবজেক্ট নেয় যার ডেটা আমরা সংশ্লিষ্ট ডিক কন্টেইনারের সাথে সওয়াপ করতে চাই।

সিনট্যাক্স

mydeque1.swap(type_t& mydeque2);

প্যারামিটার

এই ফাংশন এক প্যারামিটার গ্রহণ করে, অর্থাৎ সেই ডিকের রেফারেন্স যার ডেটা আমরা সংশ্লিষ্ট ডিকের সাথে সওয়াপ করতে চাই।

রিটার্ন ভ্যালু

এটি কিছুই রিটার্ন করে না।

উদাহরণ

Input: deque<int> even = {2, 4, 6, 8}; deque<int> odd = {1, 3, 5, 7}; even.swap(odd); Output: Even deque: 1 3 5 7 Odd deque: 2 4 6 8

সম্পূর্ণ কোড উদাহরণ

#include <deque>
#include <iostream>
using namespace std;

int main() {
    deque<int> Deque_1 = { 1, 2, 3, 4 };
    deque<int> Deque_2 = { 3, 5, 7, 9 };
    Deque_1.swap(Deque_2);
    cout << "Deque_1 elements after swapping : ";
    for (auto i = Deque_1.begin(); i < Deque_1.end(); ++i)
        cout << *i << " ";
    cout << endl << "Deque_2 elements after swapping : ";
    for (auto i = Deque_2.begin(); i < Deque_2.end(); ++i)
        cout << *i << " ";
    return 0;
}

আউটপুট

Deque_1 elements after swapping : 3 5 7 9
Deque_2 elements after swapping : 1 2 3 4
  1. C++ STL-এ Deque emplace_front() এবং emplace_back() ফাংশন

  2. C++ STL-এ deque front() এবং deque back() ফাংশন

  3. C++ STL-এ deque push_back() ফাংশন

  4. C++ STL-এ Array::fill() এবং Array::swap()