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

C++ में बाइडायरेक्शनल इटरेटर्स

यहां हम C++ में बाइडायरेक्शनल इटरेटर्स की अवधारणा देखेंगे।

  • बाइडायरेक्शनल इटरेटर्स फॉरवर्ड इटरेटर्स की सभी सुविधाओं का समर्थन करते हैं, और प्रीफिक्स और पोस्टफिक्स डिक्रीमेंट ऑपरेटर्स भी।
  • इस प्रकार का इटरेटर दोनों दिशाओं में एलिमेंट्स को एक्सेस कर सकता है, जैसे अंत की ओर और शुरुआत की ओर।
  • रैंडम एक्सेस इटरेटर भी बाइडायरेक्शनल इटरेटर का एक प्रकार है।
  • बाइडायरेक्शनल इटरेटर्स में फॉरवर्ड इटरेटर की विशेषताएं होती हैं, लेकिन एकमात्र अंतर यह है कि यह इटरेटर डिक्रीमेंट भी हो सकता है।

बाइडायरेक्शनल इटरेटर्स के कुछ गुण हैं। ये नीचे दिए गए हैं।

गुण एक्सप्रेशन
बाइडायरेक्शनल इटरेटर डिफॉल्ट-कंस्ट्रक्टिबल, कॉपी-असाइनेबल, और डिस्ट्रक्टिबल भी है A p
A q(p)
q = p
इनकी तुलना इक्वलिटी और इनइक्वलिटी ऑपरेटर्स का उपयोग करके की जा सकती है p == q
p != q
इसे डी-रेफरेंस किया जा सकता है। वैल्यू प्राप्त करने के लिए डी-रेफरेंस ऑपरेटर (*) का उपयोग कर सकते हैं *p
म्यूटेबल इटरेटर को lvalue के रूप में डी-रेफरेंस किया जा सकता है *p = t
इंक्रीमेंट ऑपरेटर (++) और डिक्रीमेंट ऑपरेटर (--) का उपयोग करके इंक्रीमेंट या डिक्रीमेंट कर सकते हैं p++
q--

उदाहरण कोड

#include <iostream>
#include <iterator>
#include <vector>
using namespace std;

int main() {
    vector<int> vec{10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
    vector<int>::iterator it;
    vector<int>::reverse_iterator rev_it;
    for (it = vec.begin(); it != vec.end(); it++)
        cout << *it << " ";
    cout << endl;
    for (rev_it = vec.rbegin(); rev_it != vec.rend(); rev_it++)
        cout << *rev_it << " ";
    return 0;
}

आउटपुट

10 20 30 40 50 60 70 80 90 100
100 90 80 70 60 50 40 30 20 10
  1. C++ में बाइनरी सर्च ट्री इटरेटर C++ में बाइनरी सर्च ट्री इटरेटर

    मान लीजिए हम बाइनरी ट्री के लिए एक इटरेटर बनाना चाहते हैं। दो मेथड होंगे। अगला एलिमेंट लौटाने के लिए next() मेथड, और बूलियन मान लौटाने के लिए hasNext() मेथड, जो इंगित करेगा कि अगला एलिमेंट मौजूद है या नहीं। तो यदि ट्री इस तरह है −और फंक्शन कॉल्स का अनुक्रम [next(), next(), hasNext(), next(), h

  1. - C++ में इटरेटर इनवैलिडेशन

    C++ में, हमारे पास vector, list, set, map आदि जैसे विभिन्न कंटेनर हैं। इन कंटेनर्स के माध्यम से पुनरावृति करने के लिए, हम इटरेटर्स का उपयोग कर सकते हैं। हमें C++ में इटरेटर्स का उपयोग करते समय सावधान रहना चाहिए। जब हम किसी कंटेनर पर पुनरावृति कर रहे होते हैं, तो कभी-कभी, यह अमान्य हो सकता है। यदि आक

  1. - C# में इटरेटर्स

    इटरेटर कलेक्शन पर कस्टम इटरेशन करता है। यह yield return स्टेटमेंट का उपयोग करता है और प्रत्येक एलिमेंट को एक समय में लौटाता है। इटरेटर वर्तमान स्थान को याद रखता है और अगले इटरेशन में अगला एलिमेंट लौटाया जाता है।निम्न एक उदाहरण है:उदाहरणusing System; using System.Collections.Generic; using System.Lin