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

C++-এ STL Set ব্যবহার করে ইনসার্ট, ডিলিট ও ফাইন্ড অপারেশন


ধরা যাক একটি সেট ডেটা স্ট্রাকচার আছে যাতে ইন্টিজার টাইপ ডেটা থাকে। n কোয়েরি দেওয়া থাকবে। প্রতিটি কোয়েরিতে দুটি এলিমেন্ট: অপারেটর এবং এলিমেন্ট। অপারেশন:

  • Insert (১): এলিমেন্ট সেটে যোগ করুন
  • Delete (২): এলিমেন্ট সেট থেকে মুছুন (যদি থাকে)
  • Search (৩): এলিমেন্ট খুঁজুন, পাওয়া গেলে "Yes", না পেলে "No"

উদাহরণস্বরূপ, n=7, queries=[[1,5],[1,8],[1,3],[2,8],[1,9],[3,8],[3,3]] হলে আউটপুট: [No, Yes]

সমাধানের ধাপসমূহ

  • set s এবং iterator it সংজ্ঞায়িত করুন
  • q := কোয়েরি সংখ্যা
  • while(q--):
    • qt, x ইনপুট নিন
    • switch(qt): case 1: s.insert(x); break; case 2: s.erase(x); break; case 3: it=s.find(x); if(it==s.end()) "No" else "Yes"

উদাহরণ

নিচের ইমপ্লিমেন্টেশনটি দেখুন:

#include <iostream> #include <set> using namespace std; int main(){     set<int> s;     set<int>::iterator it;     int q,x;     int qt;     cin >> q;     while(q--){         cin>>qt>>x;         switch(qt){             case 1:s.insert(x);                     break;             case 2:s.erase(x);                     break;             case 3:it=s.find(x);                     if(it==s.end())                         cout<<"No"<<endl;                     else                         cout<<"Yes"<<endl;                     break;         }     }     return 0; } 

ইনপুট

7 1 5 1 8 1 3 2 8 1 9 3 8 3 3

আউটপুট

No Yes

  1. C++ STL-এ Set Union বাস্তবায়ন: দুটি সেটের ইউনিয়ন

  2. C++ STL-এ Set Intersection বাস্তবায়ন: দুটি সেটের অন্তঃসেট

  3. C++ STL-এ Set Difference বাস্তবায়ন: সেট বিয়োগ

  4. C++ STL-এ Set বাস্তবায়ন: উনিক এলিমেন্টের কন্টেইনার