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

C++ में चार ऐरे के रूप में रॉ वेक्टर डेटा तक कैसे पहुंचें?

2024-12-21 को प्रकाशित
ब्राउज़ करें:844

How to Access Raw Vector Data as a Char Array in C  ?

एक चार सरणी के रूप में कच्चे वेक्टर डेटा तक पहुंच

एक फ़ंक्शन के भीतर एक चार सरणी के रूप में एक std::vector का उपयोग करने की आवश्यकता पर विचार करें जो एक शून्य सूचक की अपेक्षा करता है। प्रारंभ में, नियमित चार सरणी का उपयोग करना सीधा था। हालाँकि, std::vector के लचीलेपन पर स्विच करना इसके कच्चे डेटा तक पहुँचने में एक चुनौती पेश करता है।

वेक्टर पॉइंटर को एक फ़ंक्शन में पास करना

तत्काल प्रयास वेक्टर, &something, या उसके इटरेटर, &something.begin() को फ़ंक्शन में पास करें क्योंकि शून्य पॉइंटर्स वांछित परिणाम नहीं देते हैं। इसके बजाय, &something std::vector ऑब्जेक्ट का पता लौटाता है, डेटा का नहीं, जबकि &something.begin() एक पुनरावर्तक का पता प्रदान करता है, जिसे अंतराल के रूप में अनुमति नहीं है।

एड्रेसिंग सूचकांक 0 पर तत्व

समाधान वेक्टर में पहले तत्व का पता पुनः प्राप्त करने में निहित है। इसे कई तरीकों से हासिल किया जा सकता है। एक दृष्टिकोण &something[0] का उपयोग करना है, जो सूचकांक 0 पर तत्व का पता देता है। दूसरा विकल्प &something.front() को नियोजित करना है, जो समान कार्य करता है।

Data() सी 11 में फ़ंक्शन

सी 11 और बाद के संस्करण के लिए, डेटा() नामक एक सुविधाजनक सदस्य फ़ंक्शन std::vector में पेश किया गया है। यह फ़ंक्शन सीधे कंटेनर में प्रारंभिक तत्व का पता लौटाता है। इसका लाभ कंटेनर खाली होने पर भी उपयोग करने के लिए सुरक्षित होने में निहित है। वेक्टर में पहले तत्व का पता पुनः प्राप्त करने के लिए आवश्यक है। यह C संस्करण और कंटेनर आकार के आधार पर &something[0], &something.front(), या डेटा() फ़ंक्शन का उपयोग करके किया जा सकता है।

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

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

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

Copyright© 2022 湘ICP备2022001581号-3