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

सी ++ प्रोग्राम दिए गए इटरेटर के प्रकार को खोजने के लिए

एक पुनरावर्तक एक पॉइंटर की तरह एक वस्तु है जिसका उपयोग कंटेनर के तत्वों पर पुनरावृति करने के लिए किया जाता है। एक पुनरावर्तक का उपयोग करने का मुख्य लाभ एक सामान्य इंटरफ़ेस बनाना और एल्गोरिदम को इसे लागू करने के लिए उपयोग किए जाने वाले कंटेनर के प्रकार से प्रतिरक्षा बनाना है।

C++ मानक पुस्तकालय में पुनरावृत्तियों के प्रकार होते हैं -

  • फॉरवर्ड इटरेटर
  • द्विदिशात्मक पुनरावर्तक
  • इनपुट इटरेटर
  • आउटपुट इटरेटर
  • रैंडम एक्सेस इटरेटर

कार्यक्रम यह जांचना है कि डेटा संरचना द्वारा उपरोक्त में से कौन से इटरेटर का उपयोग किया जाता है।

उपयोग किए गए पुनरावर्तक के प्रकार को निर्धारित करने के लिए कुछ कारक उपयोगी हो सकते हैं।

  • टाइपिड , रनटाइम पर प्रकार की पहचान की जानकारी देता है।

  • पुनरावर्तक लक्षण , उन गुणों को परिभाषित करता है जो इटरेटर के पास हैं।

  • पुनरावर्तक श्रेणी उस श्रेणी को परिभाषित करने के लिए उपयोग किया जाता है जिससे वे इटरेटर को परिभाषित करते हैं।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
template <class T>
string iteratortype(T iterator){
   if (typeid(typename iterator_traits<T>::iterator_category)
      == typeid(input_iterator_tag))
      return "Input";
   else if (typeid(typename iterator_traits<T>::iterator_category)
      == typeid(output_iterator_tag))
      return "Output";
   else if (typeid(typename iterator_traits<T>::iterator_category)
      == typeid(forward_iterator_tag))
      return "Forward";
   else if (typeid(typename iterator_traits<T>::iterator_category)
      == typeid(bidirectional_iterator_tag))
      return "Bidirectional";
   else if (typeid(typename iterator_traits<T>::iterator_category)
      == typeid(random_access_iterator_tag))
      return "Random_Access";
   return "Missing";
}
int main(){
   vector<int> vec;
   auto iter = vec.begin();
   cout <<iteratortype(iter) << " Iterator\n";
   return 0;
}

आउटपुट

Random_Access Iterator

  1. C++ में एक लाइन के मध्य-बिंदु को खोजने का प्रोग्राम

    इस समस्या में, हमें दो बिंदु A और B दिए गए हैं, जो एक रेखा के आरंभ और अंत बिंदु हैं। हमारा काम C++ में एक लाइन के मध्य-बिंदु को खोजने के लिए एक प्रोग्राम बनाना है। समस्या का विवरण - यहाँ, हमारे पास एक रेखा है जिसमें शुरुआती और अंत बिंदु A(x1, y1) और B(x2, y2) हैं। और हमें रेखा के मध्य-बिंदु को खोजन

  1. C++ में त्रिभुज के केंद्रक को खोजने का कार्यक्रम

    इस समस्या में, हमें एक 2D सरणी दी गई है जो त्रिभुज के तीन शीर्षों के निर्देशांकों को दर्शाती है। हमारा काम C++ में त्रिभुज के Centroid को खोजने के लिए एक प्रोग्राम बनाना है। सेंट्रोइड त्रिभुज का वह बिंदु है जिस पर त्रिभुज की तीन माध्यिकाएं प्रतिच्छेद करती हैं। माध्यिका त्रिभुज की वह रेखा है जो त्र

  1. C++ में समांतर चतुर्भुज का क्षेत्रफल ज्ञात करने का कार्यक्रम

    इस समस्या में, हमें दो मान दिए गए हैं जो समांतर चतुर्भुज के आधार और ऊंचाई को दर्शाते हैं। हमारा कार्य C++ में समांतर चतुर्भुज का क्षेत्रफल ज्ञात करने के लिए एक प्रोग्राम बनाना है। समांतर चतुर्भुज एक चार भुजा बंद आकृति है जिसकी विपरीत भुजाएँ एक दूसरे के समान और समानांतर हैं। समस्या को समझने के लि