C++ में std::distance के इटरेटर घटाने पर क्या फायदे हैं?
नमस्ते साथियों! मैंने हाल ही में C++ सीखना शुरू किया है और इटरेटर के साथ काम करते समय एक दिलचस्प बात देखी। मान लीजिए मेरे पास std::vector v = {10, 20, 30, 40, 50}; है और मैं दो इटरेटर के बीच की दूरी जानना चाहता हूं, जैसे शुरुआत से मध्य तक।
मुझे पता है कि random-access इटरेटर (जैसे vector के) के लिए एक इटरेटर को दूसरे से घटाया जा सकता है: auto mid = v.begin() + 2; ptrdiff_t dist = mid - v.begin(); // dist = 2. यह काम करता है और बहुत सरल लगता है।
लेकिन अन्य डेवलपर्स के कोड में मैं अक्सर std::distance का उपयोग देखता हूं: auto dist = std::distance(v.begin(), mid);. और मुझे समझ नहीं आता कि अगर सीधे घटाया जा सकता है तो फंक्शन का उपयोग क्यों करें? आखिर घटाना छोटा और शायद तेज़ भी होगा?
मैं समझता हूं कि std::distance हेडर से एक template function है। लेकिन
अभी तक कोई उत्तर नहीं।
लॉग इन करें उत्तर देने के लिए
ब्लॉग
C# (.NET) प्रोजेक्ट्स के लिए GitHub Actions के साथ CI/CD: चरण-दर-चरण मार्गदर्शिका