में एक पुनरावर्तक की अनुक्रमणिका प्रिंट करना std::map
की विधि का उपयोग कर रहा है, जो इटरेटर देता है।
हालांकि मुझे पाए गए तत्व के इंडेक्स की आवश्यकता है; उदाहरण के लिए: 0, जो std::map::begin()
से मेल खाता है, और इसी तरह।std :: map
#include <map>
#include <utility>
#include <iostream>
int main()
{
std::map< int, int > aMap;
aMap.insert(std::make_pair(100, 50));
aMap.insert(std::make_pair(200, 40));
aMap.insert(std::make_pair(300, 60));
std::map< int, int >::iterator it_map = aMap.find(300);
if (it_map != aMap.end())
std::cout << it_map << "\n"; // error
}
यह संकलित नहीं करता है और मुझे कारण पता है। हालांकि, मुझे 2
प्रिंट करने का एक तरीका चाहिए क्योंकि 300 की अनुक्रमणिका 2.
उस साधारण उदाहरण के लिए, आप कह सकते हैं कि नक्शा (बाइनरी पेड़) एक अच्छा कंटेनर नहीं है। हालांकि, असली कोड में, मेरे पास खोज करने के लिए बहुत सारे तत्व हैं और बाइनरी पेड़ इसके लिए अच्छा है।
कोई विचार?
आप एक द्विआधारी वृक्ष संरचना के सूचकांक को कैसे परिभाषित ? – 101010
@ 40two: एक मानचित्र जरूरी नहीं है कि एक पेड़ के रूप में लागू किया गया हो, और इसमें पेड़ की तरह इंटरफ़ेस न हो; लेकिन यह आदेश दिया गया है, इसलिए आप उस आदेश के अनुसार एक सूचकांक को परिभाषित कर सकते हैं जैसा सवाल बताता है। –
@ माइकसेमोर मानक के अनुसार यह आवश्यक रूप से एक पेड़ के रूप में लागू नहीं किया गया है, सहमत है। हालांकि, हर कार्यान्वयन में मुझे पता है कि एक पेड़ के रूप में लागू किया गया है। इसके अलावा, जब एक सम्मिलन या निष्कर्षण होता है, तो कोई भी पिछला आदेश परेशान होता है। नतीजतन, जैसा कि आपका उत्तर सही ढंग से बताता है कि आप एक इंडेक्स को परिभाषित कर सकते हैं लेकिन केवल 'std :: map' के currend स्थिति के लिए। – 101010