"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > सूचकांकों का उपयोग करते हुए std::vector पर पुनरावृत्ति करते समय आपको हस्ताक्षरित पूर्णांकों का उपयोग क्यों करना चाहिए?

सूचकांकों का उपयोग करते हुए std::vector पर पुनरावृत्ति करते समय आपको हस्ताक्षरित पूर्णांकों का उपयोग क्यों करना चाहिए?

2024-11-24 को प्रकाशित
ब्राउज़ करें:696

Why Should You Use Signed Integers When Iterating Over a std::vector Using Indices?

std::vector पर पुनरावृत्ति: अहस्ताक्षरित बनाम हस्ताक्षरित सूचकांक चर

C में, एक वेक्टर पर पुनरावृति करने के लिए दो सामान्य दृष्टिकोण हैं: पुनरावर्तक का उपयोग करना या सूचकांक का उपयोग करना। सूचकांकों का उपयोग करते समय, सूचकांक चर के प्रकार पर विचार करना महत्वपूर्ण है।

इटरेटर्स का उपयोग करना

इटरेटर्स एक कंटेनर पर पुनरावृत्त करने का एक सुविधाजनक तरीका है। वे विभिन्न प्रकार के कंटेनरों के लिए एक समान इंटरफ़ेस प्रदान करते हैं, और वे तत्वों के कुशल ट्रैवर्सल की अनुमति देते हैं। निम्नलिखित कोड दर्शाता है कि इटरेटर्स का उपयोग करके वेक्टर पर पुनरावृति कैसे करें:

for (auto it = v.begin(); it != v.end();   it) {
  // do something with *it
}

सूचकांकों का उपयोग करना

सूचकांकों का उपयोग करते हुए एक वेक्टर पर पुनरावृत्ति करते समय, एक हस्ताक्षरित सूचकांक चर का उपयोग करना महत्वपूर्ण है। ऐसा इसलिए है क्योंकि वैक्टर को 0 से आकार() - 1 तक अनुक्रमित किया जाता है, और एक हस्ताक्षरित चर इस सीमा को अधिक स्वाभाविक रूप से प्रस्तुत कर सकता है। निम्नलिखित उदाहरण में, वेक्टर को अनुक्रमित करने के लिए एक हस्ताक्षरित int का उपयोग किया जाता है:

for (int i = 0; i 

अहस्ताक्षरित सूचकांक चर का उपयोग करना खतरनाक क्यों हो सकता है

अहस्ताक्षरित सूचकांक चर का उपयोग करना खतरनाक हो सकता है क्योंकि यदि सूचकांक वेक्टर के आकार से अधिक हो जाता है तो इससे अपरिभाषित व्यवहार हो सकता है। ऐसा इसलिए है क्योंकि एक अहस्ताक्षरित चर अपने अधिकतम मूल्य तक पहुंचने पर चारों ओर लपेटता है, और इससे सूचकांक नकारात्मक हो सकता है, जो एक वेक्टर के लिए वैध सूचकांक नहीं है।

निम्नलिखित उदाहरण में, एक अहस्ताक्षरित int है वेक्टर को अनुक्रमित करने के लिए उपयोग किया जाता है, और यदि वेक्टर का आकार अहस्ताक्षरित पूर्णांक के अधिकतम मूल्य से अधिक है, तो सूचकांक चारों ओर लपेट जाएगा और नकारात्मक हो जाएगा, जिसके परिणामस्वरूप अपरिभाषित व्यवहार होगा:

for (unsigned int i = 0; i 

निष्कर्ष

एक वेक्टर पर पुनरावृत्ति करते समय, एक हस्ताक्षरित सूचकांक चर का उपयोग करना हमेशा बेहतर होता है। ऐसा इसलिए है क्योंकि यह सुनिश्चित करता है कि सूचकांक हमेशा वेक्टर के लिए मान्य सीमा के भीतर रहेगा, और अपरिभाषित व्यवहार की संभावना से बचता है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3