इस लेख में हम C++ में लिस्ट ::इरेज़ () फंक्शन की कार्यप्रणाली, सिंटैक्स और उदाहरणों पर चर्चा करेंगे।
STL में सूची क्या है?
सूची एक डेटा संरचना है जो अनुक्रम में कहीं भी निरंतर समय सम्मिलन और विलोपन की अनुमति देती है। सूचियों को डबल लिंक्ड सूचियों के रूप में लागू किया जाता है। सूचियाँ गैर-सन्निहित स्मृति आवंटन की अनुमति देती हैं। सूची सरणी, वेक्टर और डेक की तुलना में कंटेनर में किसी भी स्थिति में बेहतर सम्मिलन निष्कर्षण और तत्व को स्थानांतरित करती है। सूची में तत्व तक सीधी पहुंच धीमी है और सूची आगे_सूची के समान है, लेकिन अग्रेषित सूची वस्तुएं एकल लिंक की गई सूचियां हैं और उन्हें केवल आगे की ओर पुनरावृत्त किया जा सकता है।
सूची क्या है::मिटाएं()?
सूची ::मिटाएं() सी ++ एसटीएल में एक अंतर्निहित फ़ंक्शन है जिसे हेडर फ़ाइल में घोषित किया गया है। इरेज़ () का उपयोग सूची कंटेनर से तत्वों को हटाने के लिए किया जाता है। हम सूची कंटेनर से किसी एक तत्व या तत्वों की श्रेणी को मिटा सकते हैं। यह सूची कंटेनर के आकार को हटाए जाने/मिटाए जाने वाले तत्वों की संख्या से कम कर देता है
सिंटैक्स
list_container.erase(positon); list_container.erase(start_position, end_position);
यह फ़ंक्शन एक या दो पैरामीटर स्वीकार कर सकता है -
पैरामीटर
-
स्थिति - यह एक एकल स्थिति है जिसमें से हम एक तत्व को हटाना चाहते हैं।
-
start_position, end_position - यह उस श्रेणी को परिभाषित करता है जिससे हम तत्वों को हटाना चाहते हैं।
रिटर्न वैल्यू
यह फ़ंक्शन एक पुनरावर्तक देता है जो हटाए गए अंतिम तत्व के बगल में इंगित करता है।
उदाहरण
नीचे दिए गए कोड में हमें एसटीलैंड में मौजूद इरेज़ () फ़ंक्शन का उपयोग करके तत्वों को मिटाना होगा, इसके लिए हम एक इटरेटर का उपयोग करके पहला तत्व प्राप्त करेंगे जो कि स्टार्ट () फ़ंक्शन का उपयोग करके पहले तत्व को इंगित करेगा और उसके बाद हम इटरेटर को मिटा देंगे जिसमें सूची का पहला तत्व होता है।
#include <bits/stdc++.h> using namespace std; int main(){ //Create a list list<int> myList; myList.push_back(2); myList.push_back(4); myList.push_back(6); myList.push_back(8); myList.push_back(10); cout<<"List before deleting elements: "; for (auto i = myList.begin(); i!= myList.end(); i++){ cout << *i<< " "; } //iterator that will point to the first element list<int>::iterator i = myList.begin(); myList.erase(i); //list after deleting the element cout << "\nList after deleting elements: "; for (auto i = myList.begin(); i!= myList.end(); i++){ cout << *i << " "; } return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा
List before deleting elements: 2 4 6 8 10 List after deleting elements: 4 6 8 10
उदाहरण
नीचे दिए गए कोड में हमें एसटीलैंड में मौजूद इरेज़ () फ़ंक्शन का उपयोग करके तत्वों को मिटाना होगा, इसके लिए हम एक इटरेटर (इटरेटर 1) का उपयोग करके पहला तत्व प्राप्त करेंगे जो कि स्टार्ट () फ़ंक्शन का उपयोग करके पहले तत्व को इंगित करेगा और हम दूसरा लेंगे iterator(iterator 2) सेकेंड एलिमेंट को इंगित करने के लिए और उसके बाद हम iterator को iterator 1 और iterator 2 के बीच की रेंज से मिटा देंगे और परिणाम प्रदर्शित करेंगे।
#include <bits/stdc++.h> using namespace std; int main(){ //Create a list list<int> myList; myList.push_back(2); myList.push_back(4); myList.push_back(6); myList.push_back(8); myList.push_back(10); cout<<"List before deleting elements: "; for (auto i = myList.begin(); i!= myList.end(); i++){ cout << *i << " "; } //iterator that will point to the first element list<int>::iterator i_1, i_2; i_1 = myList.begin(); i_2 = myList.begin(); //advance() function will increment the position of iterator 2 by 3 advance(i_2, 4); //now it will delete the elements from the range 0 - 4 myList.erase(i_1, i_2); //list after deleting the element cout<< "\nList after deleting elements: "; for (auto i = myList.begin(); i!= myList.end(); i++){ cout << *i << " "; } return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा
List before deleting elements: 2 4 6 8 10 List after deleting elements: 10