] विशेष रूप से, प्रोग्रामर उन परिदृश्यों का सामना कर सकते हैं जहां बाहरी ब्रेसिज़ कुछ कुल प्रकारों के लिए आवश्यक दिखाई देते हैं, लेकिन दूसरों के लिए नहीं। इस लेख का उद्देश्य विषय में गहराई से जाना और बाहरी ब्रेसिज़ को कब छोड़ा जा सकता है, इस पर स्पष्टीकरण प्रदान करना है।
{
इंट फू;
डबल बार;
};
std :: सरणी a1 =
// त्रुटि C2078: बहुत अधिक आरंभ करने वाले
{
{0, 0.1},
{२, ३.४}
};
// ठीक है
std :: सरणी a2 = {0.1, 2.3}; ; हालाँकि, A2 के लिए बाहरी ब्रेसिज़ को छोड़ने से कोई त्रुटि नहीं होती है। यह विसंगति इस सवाल को उठाती है कि A1 के लिए बाहरी ब्रेसिज़ की आवश्यकता क्यों है, लेकिन A2 के लिए नहीं। STD :: सरणी को एक समुच्चय और एक सादे पुराने डेटाटाइप (POD) के रूप में वर्गीकृत किया गया है, जबकि अन्य मानक पुस्तकालय कंटेनर नहीं हैं। उपयोगकर्ता-परिभाषित कंस्ट्रक्टरों के साथ कंटेनरों के विपरीत, STD :: सरणी में एक नहीं है। इसका पहला डेटा सदस्य आकार n का एक सरणी है, जो एक टेम्पलेट तर्क के रूप में निर्दिष्ट है। इस डेटा सदस्य को सीधे एक इनिशियलाइज़र सूची का उपयोग करके आरंभ किया जाता है। अतिरिक्त ब्रेसिज़ आवश्यक हैं क्योंकि वे आंतरिक सरणी को संलग्न करते हैं जिसे आरंभीकृत किया जा रहा है।
संरचना aarray
{
एक डेटा [2]; // एक आंतरिक सरणी
};
{
{// आंतरिक सरणी का आरंभीकरण शुरू करता है
{// आंतरिक सरणी के पहले तत्व को इनिशियलाइज़ करता है
0, 0.1
}, // पहले तत्व के आरंभीकरण को समाप्त करता है
{2, 3.4} // आंतरिक सरणी के दूसरे तत्व को इनिशियलाइज़ करता है
} // आंतरिक सरणी के आरंभीकरण को समाप्त करता है
};
// त्रुटि: बहुत सारे इनिशियलाइज़र अगर ब्रेसिज़ का उपयोग नहीं कर रहे हैं
Aarray b1 =
{
0, 0.1,
2, 3.4
}; इसके बजाय, std :: सरणी को आदिमों का एकत्र माना जाता है। निम्न कोड बाहरी ब्रेसिज़ के बिना मान्य है क्योंकि आदिम मानों को सीधे समतल के भीतर आरंभ किया जाता है:
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3