Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ प्रोग्राम में इटरेटर अमान्यता


इस ट्यूटोरियल में, हम C++ में इटरेटर अमान्यता को समझने के लिए एक प्रोग्राम पर चर्चा करेंगे।

कंटेनर ऑब्जेक्ट के तत्वों पर पुनरावृति करते समय, कभी-कभी यदि हम बाउंड चेक लागू नहीं करते हैं तो यह अमान्य हो सकता है। यह मुख्य रूप से कंटेनर ऑब्जेक्ट के आकार और आकार में परिवर्तन के कारण होता है।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int main() {
   //declaring a vector
   vector <int> v{1, 5, 10, 15, 20};
   //changing vector during execution
   //which will cause bound invalidation
   for (auto it=v.begin();it!=v.end();it++)
      if ((*it) == 5)
         v.push_back(-1);
   for (auto it=v.begin();it!=v.end();it++)
      cout << (*it) << " ";
   return 0;
}

आउटपुट

1 5 10 15 20 -1 -1

(ऐसा भी हो सकता है कि नए तत्व को जोड़ने के लिए, वेक्टर एक नए स्थान पर कॉपी हो जाता है, हमारे इटरेटर अभी भी पुराने को इंगित करता है जो तब एक त्रुटि देगा।)


  1. सी ++ में एक वेक्टर को सॉर्ट करना

    सी ++ में वेक्टर को सॉर्ट करना std ::सॉर्ट() का उपयोग करके किया जा सकता है। इसे हेडर में परिभाषित किया गया है। एक स्थिर प्रकार प्राप्त करने के लिए std::stable_sort का उपयोग किया जाता है। यह बिल्कुल सॉर्ट () जैसा है लेकिन समान तत्वों के सापेक्ष क्रम को बनाए रखता है। आवश्यकता के अनुसार क्विकसॉर्ट (),

  1. एसटीएल में वेक्टर लागू करने के लिए सी++ प्रोग्राम

    जब कोई तत्व डाला या हटाया जाता है तो वेक्टर स्वचालित रूप से गतिशील सरणी की तरह आकार बदलने की क्षमता रखते हैं, कंटेनर स्वचालित रूप से अपने भंडारण को संभालता है। वेक्टर तत्वों को सन्निहित भंडारण में रखा जाता है ताकि उन्हें इटरेटर्स का उपयोग करके एक्सेस और ट्रैवर्स किया जा सके। डेटा को वेक्टर के आरंभ,

  1. वेक्टर को लागू करने के लिए C++ प्रोग्राम

    एक वेक्टर एक गतिशील सरणी है जो किसी तत्व को डालने या हटाने पर स्वयं का आकार बदल सकता है। वेक्टर तत्व एक सन्निहित भंडारण में समाहित होते हैं और कंटेनर भंडारण को स्वचालित रूप से संभालता है। एक प्रोग्राम जो वैक्टर को लागू करता है वह इस प्रकार दिया गया है - उदाहरण #include <iostream> #include <