c_str() बनाम data() मानक स्ट्रिंग कार्यान्वयन में
STL में c_str() और data() कार्यों के बीच अंतर और समान कार्यान्वयन को व्यापक रूप से शून्य समाप्ति पर आधारित माना जाता है। माना जाता है कि, c_str() हमेशा एक शून्य-समाप्त स्ट्रिंग प्रदान करता है, जबकि data() नहीं करता है। इससे दो कार्यों के बीच वास्तविक अंतर के बारे में उलझन हो सकती है।
सही उपयोग और परिदृश्यदस्तावेज़ीकरण में स्पष्ट रूप से कहा गया है कि c_str() का उपयोग तब किया जाना चाहिए जब शून्य हो -समाप्त स्ट्रिंग की आवश्यकता है. यदि एक गैर-शून्य-समाप्त स्ट्रिंग स्वीकार्य है, तो डेटा() का उपयोग किया जा सकता है, क्योंकि यह विशिष्ट कार्यान्वयन में बेहतर प्रदर्शन प्रदान कर सकता है।
चरित्र-आधारित स्ट्रिंग्स से परेयह ध्यान रखना महत्वपूर्ण है कि C में स्ट्रिंग्स वर्ण डेटा तक सीमित नहीं हैं। इनमें किसी भी प्रकार के तत्व शामिल हो सकते हैं। ऐसे मामलों में, डेटा() अधिक सार्थक हो जाता है क्योंकि यह सीधे अंतर्निहित डेटा तक पहुंचता है, जबकि चरित्र-आधारित स्ट्रिंग्स पर जोर देने के कारण c_str() कम प्रासंगिक है।
C 11 और परे: कन्वर्जेंससी 11 और मानक के बाद के संस्करणों में, डेटा() को अब शून्य-समाप्त करने की आवश्यकता है, इसके व्यवहार को c_str() के साथ संरेखित करना। यह दो कार्यों के बीच पिछले अंतर को समाप्त करता है, यह सुनिश्चित करता है कि वे एक ही ऑपरेशन करते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3