ধরুন আমাদের একটি ভেক্টরের ভিতরে একটি উপাদানের সেট আছে। সূচক ব্যবহার করে মুছে ফেলার জন্য আমাদের ভেক্টর ক্লাস টাইপের erase() ফাংশন ব্যবহার করে কিছু রিমুভ অপারেশন করতে হবে এবং শেষ পর্যন্ত বাকি উপাদানগুলি প্রদর্শন করতে হবে। মুছে ফেলা ফাংশন সরাসরি সূচক নেয় না। আমাদের v.begin()+index পাস করে এর ঠিকানা পাস করতে হবে, এখানে v হল ভেক্টর এবং v.begin() হল প্রথম উপাদানের (0 তম উপাদান) ঠিকানা। এখন এটির সাথে সূচক যোগ করে, এটি প্রদত্ত সূচকে উপস্থিত উপাদানটির দিকে চলে যাবে।
সুতরাং, যদি ইনপুটটি v =[5,8,6,3,2,0,1,4] সূচক 2, 6 এবং 5 থেকে মুছে ফেলার মত হয়, তাহলে আউটপুট হবে [5,8,3,2,0 ] কারণ প্রথমে অ্যারে ছিল [5,8,6,3,2,0,1,4], এখন সূচী 2 থেকে উপাদান মুছে ফেলার পরে, এটি [5,8,3,2,0,1,4], এখন ইনডেক্স 6 এ উপাদানটি 4, তাই এটি সরানোর পরে, অ্যারেটি হবে [5,8,6,3,2,0,1] এবং এখন 5 সূচকের আইটেমটি 1, তাই এটি সরানোর পরে, অ্যারে হবে হবে [5,8,3,2,0]।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
সূচী 2 এ v.erase(v.begin()+2)
দ্বারা উপাদান মুছুন -
v.erase(v.begin()+6)
দ্বারা সূচক 6-এ উপাদান মুছুন -
v.erase(v.begin()+5)
দ্বারা সূচক 5-এ উপাদান মুছুন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main(){ vector<int> v = {5,8,6,3,2,0,1,4}; v.erase(v.begin()+2); v.erase(v.begin()+6); v.erase(v.begin()+5); for(int i = 0; i<v.size(); i++){ cout << v[i] << " "; } }
ইনপুট
{5,8,6,3,2,0,1,4}
আউটপুট
5 8 3 2 0