मेरे कहने का मतलब है - हम जानते हैं कि std::map
कुंजी के अनुसार तत्वों को क्रमबद्ध किया जाता है। तो, मान लें कि कुंजियाँ पूर्णांक हैं। अगर मैं एक std::map::begin()
का std::map::end()
उपयोग करने से पुनरावृत्ति for
करता हूं, तो क्या मानक गारंटी देता है कि मैं कुंजी के साथ तत्वों के माध्यम से पुनरावृति करूंगा, आरोही क्रम में क्रमबद्ध?
उदाहरण:
std::map<int, int> map_;
map_[1] = 2;
map_[2] = 3;
map_[3] = 4;
for( std::map<int, int>::iterator iter = map_.begin();
iter != map_.end();
++iter )
{
std::cout << iter->second;
}
क्या यह प्रिंट करने की गारंटी है 234
या क्या यह कार्यान्वयन को परिभाषित करता है?
वास्तविक जीवन कारण: मैं एक है std::map
के साथ int
कुंजी। बहुत ही दुर्लभ स्थितियों में, मैं सभी तत्वों के माध्यम से पुनरावृति करना चाहता हूं, कुंजी के साथ, एक ठोस int
मूल्य से अधिक । हां, ऐसा लगता है कि यह std::vector
बेहतर विकल्प होगा, लेकिन मेरी "बहुत दुर्लभ स्थितियों" पर ध्यान दें।
संपादित करें : मुझे पता है, कि तत्वों std::map
को हल किया गया है .. इसे इंगित करने की आवश्यकता नहीं है (यहां अधिकांश उत्तरों के लिए)। मैंने इसे अपने प्रश्न में भी लिखा था।
मैं पुनरावृत्तियों और आदेश के बारे में पूछ रहा था जब मैं एक कंटेनर के माध्यम से पुनरावृत्ति कर रहा हूं। धन्यवाद @Kerrek उत्तर के लिए एस.बी.
map::upper_bound
कि आप इसे शुरू करने के लिए बिंदु खोजें।