কম্পিউটার

C++ প্রোগ্রামিং STL-এ deque::at() এবং deque::swap()


এই প্রবন্ধে আমরা C++ STL-এ deque::at() এবং deque::swap() ফাংশনের কাজ, সিনট্যাক্স এবং উদাহরণ নিয়ে আলোচনা করব।

ডেক কি?

Deque হল ডাবল এন্ডেড কিউ যা সিকোয়েন্স কন্টেইনার যা উভয় প্রান্তে সম্প্রসারণ এবং সংকোচনের কার্যকারিতা প্রদান করে। একটি সারি ডেটা স্ট্রাকচার ব্যবহারকারীকে শুধুমাত্র প্রান্তে ডেটা সন্নিবেশ করতে এবং ফ্রন্ট থেকে ডেটা মুছতে দেয়। চলুন বাস স্টপে সারিগুলির সাদৃশ্য গ্রহণ করা যাক যেখানে ব্যক্তিকে শুধুমাত্র END থেকে একটি সারিতে ঢোকানো যেতে পারে এবং সামনে দাঁড়ানো ব্যক্তিকে প্রথমে সরানো হবে যেখানে ডাবল এন্ডেড সারিতে ডেটা সন্নিবেশ এবং মুছে ফেলা উভয়ই সম্ভব। শেষ।

deque::at() কি?

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

সিনট্যাক্স

mydeque.at(int position);

প্যারামিটার

এই ফাংশনটি সেই অবস্থানের জন্য একটি প্যারামিটার গ্রহণ করে যেখানে আমরা নির্দেশ করতে চাই।

রিটার্ন মান

এটি deque কন্টেইনারের নির্দিষ্ট অবস্থানে উপাদানের একটি রেফারেন্স প্রদান করে।

উদাহরণ

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

আউটপুট

2 অবস্থানে উপাদান হল 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. STL-এ C++ এ Deque emplace_front( ) এবং deque emplace_back( )

  2. STL-এ C++ এ deque front( ) এবং deque back( )

  3. STL-এ C++-এ deque push_back( )

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