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

C++ में STL फ़ंक्शंस द्वारा लौटाए गए पॉइंटर्स का उपयोग करके कम्प्यूटिंग इंडेक्स


इस खंड में हम देखेंगे कि STL द्वारा C++ में लौटाए गए पॉइंटर्स का उपयोग करके इंडेक्स कैसे बनाया जाता है। जैसा कि हम जानते हैं कि सी ++ में कई इनबिल्ट फ़ंक्शंस पॉइंटर्स को मेमोरी में स्थिति में लौटाते हैं जो वांछित संख्या का पता प्रदान करता है, लेकिन इसका रिटर्न वैल्यू के कंटेनर में वास्तविक इंडेक्स से कोई संबंध नहीं है। उदाहरण के तौर पर, किसी कोड में अधिकतम तत्व निर्धारित करने के लिए, हम std::max_element() फ़ंक्शन का उपयोग करते हैं, यह वांछित तत्व की अनुक्रमणिका वापस नहीं करता है, लेकिन स्मृति में पता वापस कर देता है। लेकिन कभी-कभी, हमें उस पते से अनुक्रमणिका प्राप्त करने की आवश्यकता होती है। यहां हम देखेंगे कि हम सूचकांक कैसे उत्पन्न कर सकते हैं।

पहले इटरेटर को घटाना

कंटेनर.बेगिन () विधि से हमें पहली स्थिति का पता मिलेगा। अब दिए गए पते से प्रारंभ पता घटाकर हम अंतर प्राप्त कर सकते हैं। वहां से हम इंडेक्स ढूंढ सकते हैं।

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;
int main(){
   vector<int> vec = { 10, 40, 50, 60, 30};
   cout << "Max element is : " << (*max_element(vec.begin(), vec.end())) << endl;
   cout << "The index of maximum element : ";
   cout << max_element(vec.begin(), vec.end()) - vec.begin();
}

आउटपुट

Max element is : 60
The index of maximum element : 3

अनुक्रमणिका खोजने का दूसरा तरीका std::distance() विधि का उपयोग करना है। हम इसे नीचे के रूप में उपयोग करेंगे -

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int main(){
   vector<int< vec = { 10, 40, 50, 60, 30};
   cout << "Max element is : " << (*max_element(vec.begin(), vec.end())) << endl;
   cout << "The index of maximum element : ";
   cout << distance(vec.begin(), max_element(vec.begin(),
   vec.end()));
}

आउटपुट

Max element is : 60
The index of maximum element : 3

  1. यह जांचने के लिए प्रोग्राम कि कोई ऐरे पालिंड्रोम है या C++ में STL का उपयोग नहीं कर रहा है

    एन पूर्णांकों की एक सरणी गिरफ्तारी [एन] को देखते हुए, कार्य यह पता लगाना है कि सरणी एक पैलिंड्रोम है या नहीं। हमें बताए गए कार्य को C++ में STL का उपयोग करके करना है। सी ++ में एसटीएल (स्टैंडर्ड टेम्प्लेट लाइब्रेरी) की एक विशेषता है, यह सी ++ टेम्प्लेट क्लासेस का एक सेट है जो डेटा संरचनाओं और ढेर,

  1. C++ में प्रतिस्पर्धी कोडिंग के लिए BFS STL का उपयोग कर रहा है?

    चौड़ाई पहली खोज (बीएफएस) ट्रैवर्सल एक एल्गोरिदम है, जिसका उपयोग किसी दिए गए ग्राफ़ के सभी नोड्स पर जाने के लिए किया जाता है। इस ट्रैवर्सल एल्गोरिथम में एक नोड का चयन किया जाता है और फिर सभी आसन्न नोड्स को एक-एक करके देखा जाता है। आसन्न सभी शीर्षों को पूरा करने के बाद, यह एक और शीर्षों की जाँच करने क

  1. सी ++ एसटीएल का उपयोग कर कस्टम ऑब्जेक्ट्स के वेक्टर को सॉर्ट करना

    आप C++ STL फ़ंक्शन std::sort का उपयोग करके कस्टम ऑब्जेक्ट के वेक्टर को सॉर्ट कर सकते हैं। सॉर्ट फ़ंक्शन में एक अतिभारित रूप होता है जो पहले, अंतिम, तुलनित्र तर्क के रूप में लेता है। पहले और आखिरी कंटेनर के पहले और आखिरी तत्वों के इटरेटर हैं। तुलनित्र एक विधेय कार्य है जिसका उपयोग यह बताने के लिए किय