मान लीजिए हमारे पास एक वेक्टर में तत्वों का एक समूह मौजूद है। हमें वेक्टर क्लास के erase() फंक्शन का उपयोग करके कुछ हटाने के ऑपरेशन करने हैं और अंत में शेष तत्वों को प्रदर्शित करना है। 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] होगी।
समाधान दृष्टिकोण
इस समस्या को हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:
- v.erase(v.begin()+2) द्वारा इंडेक्स 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