सी ++ में एसटीडी :: सरणी क्या है?

Si Mem Esatidi Sarani Kya Hai



C ++ तत्वों के संग्रह को संग्रहीत और हेरफेर करने के लिए विभिन्न प्रकार की डेटा संरचनाएँ प्रदान करता है। ऐसी ही एक डेटा संरचना है एसटीडी :: सरणी , जिसे C++11 मानक पुस्तकालय में पेश किया गया था। इस लेख के माध्यम से, आप std::array, इसके सिंटैक्स, एक उदाहरण और C++ में इसके फायदों के बारे में जानेंगे।

सी ++ में एसटीडी :: सरणी क्या है

C++ में, एक कंटेनर के रूप में जाना जाता है एसटीडी :: सरणी समान डेटा प्रकार के आइटम की एक निश्चित संख्या रखने के लिए कार्यरत है। एसटीडी :: सरणी कंटेनर सी-शैली सरणियों के लिए एक विकल्प प्रदान करता है क्योंकि यह सुरक्षित, उपयोग में आसान और बेहतर प्रदर्शन है।

कक्षा, जो सी ++ के मानक पुस्तकालय का एक घटक है, समान डेटा प्रकार वाले तत्वों को स्टोर और एक्सेस करने के लिए व्यावहारिक और प्रभावी दृष्टिकोण प्रदान करती है। क्योंकि का आकार एसटीडी :: सरणी संकलन समय पर जाना जाता है, गतिशील स्केलिंग का रनटाइम ओवरहेड कम हो जाता है। सरणी का आकार टेम्पलेट पैरामीटर द्वारा निर्धारित किया जाता है, और इसके आइटम एसटीडी :: सरणी सन्निहित स्मृति में रखा जाता है।







सी ++ में एसटीडी :: सरणी घोषित करें

आप घोषित कर सकते हैं एसटीडी :: सरणी पसंद करना:



कक्षा :: सरणी < int यहाँ , 4 > आगमन ;

उपरोक्त सिंटैक्स नाम की एक सरणी घोषित करता है आगमन 4 तत्वों के एक निश्चित आकार के साथ, जहां प्रत्येक तत्व का प्रकार int है।



एसटीडी का उदाहरण :: सरणी

उदाहरण 1: निम्नलिखित प्रारंभिक a के लिए एक सरल उदाहरण है एसटीडी :: सरणी सी ++ में:





#शामिल <सरणी>

#शामिल

int यहाँ मुख्य ( ) {

कक्षा :: सरणी < int यहाँ , 4 > आगमन = { 4 , 6 , 2 , 1 } ;

के लिए ( int यहाँ मैं = 0 ; मैं < गिरफ्तार। आकार ( ) ; मैं ++ ) {

कक्षा :: अदालत << आगमन [ मैं ] << '' ;

}

कक्षा :: अदालत << कक्षा :: endl ;

वापस करना 0 ;

}

उत्पादन



उदाहरण 2: आप भी उपयोग कर सकते हैं एसटीडी :: सरणी एक सरणी में तत्वों तक पहुँचने के लिए। कोड नीचे दिया गया है:

#शामिल <सरणी>

#शामिल

int यहाँ मुख्य ( ) {

कक्षा :: सरणी < int यहाँ , 3 > आगमन = { 1 , 2 , 3 } ;

कक्षा :: अदालत << 'पहला तत्व है' << आगमन [ 0 ] << कक्षा :: endl ;

कक्षा :: अदालत << 'दूसरा तत्व है' << गिरफ्तार। पर ( 1 ) << कक्षा :: endl ;

कक्षा :: अदालत << 'तीसरा तत्व है' << गिरफ्तार। पीछे ( ) << कक्षा :: endl ;

वापस करना 0 ;

}

उत्पादन

उदाहरण 3: निम्न उदाहरण किसी ऐरे से किसी तत्व को किसी विशिष्ट स्थान पर उपयोग करके प्रिंट करना दिखाता है एसटीडी :: सरणी सी ++ में।

#शामिल

#शामिल <सरणी>

int यहाँ मुख्य ( )

{

कक्षा :: सरणी < int यहाँ , 4 > आगमन = { 4 , 6 , 2 , 1 } ;

कक्षा :: अदालत << आगमन [ 3 ] << कक्षा :: endl ;

वापस करना 0 ;

}

उत्पादन

सी ++ में एसटीडी :: सरणी के लाभ

सी ++ में पारंपरिक सरणियों के विपरीत, एसटीडी :: सरणी सुविधाओं की एक श्रृंखला प्रदान करता है।

1: सहज सिंटेक्स

एसटीडी :: सरणी आरंभीकरण के लिए एक अधिक सहज सिंटैक्स है और एक इनिशियलाइज़र सूची का उपयोग करके आरंभ किया जा सकता है। यह सरणी को प्रारंभ करने का अधिक संक्षिप्त और पठनीय तरीका प्रदान करता है।

2: तर्क के रूप में पारित किया गया

एसटीडी :: सरणी कार्यों के तर्क के रूप में पारित किया जा सकता है, और उन्हें कार्यों से भी वापस करना संभव है।

3: स्मृति प्रबंधन

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

4: स्वचालित बाउंड चेकिंग

यह तथ्य कि एसटीडी :: सरणी सी-स्टाइल सरणियों पर स्वचालित सीमा जाँच प्रदान करता है जो इसके प्रमुख लाभों में से एक है। इसका मतलब यह है कि यदि प्रोग्राम सरणी की परिभाषित सीमा के बाहर किसी तत्व तक पहुँचने का प्रयास करता है, तो संकलक एक त्रुटि उत्पन्न करेगा। बफ़र ओवरफ्लो, सेगमेंटेशन दोष, और मेमोरी लीक कुछ सामान्य प्रोग्रामिंग समस्याएं हैं जिनसे बचने के लिए बाउंड चेकिंग आपकी सहायता कर सकती है।

5: उपयोगी कार्य प्रदान करता है

एसटीडी :: सरणी इटरेटर्स, साइज (), फ्रंट (), बैक (), फिल (), और एट () जैसे कई उपयोगी कार्य प्रदान करता है, जो एक और फायदा है। ये फ़ंक्शन जटिल और त्रुटि-प्रवण कोड की आवश्यकता के बिना सरणी तत्वों में हेरफेर करना आसान बनाते हैं। उदाहरण के लिए, पुनरावर्तक, सरणी के तत्वों के बीच नेविगेट करना आसान बनाते हैं, और भरण () विधि आपको सरणी के संपूर्ण तत्व सेट के लिए एक मान प्रदान करने देती है।

निष्कर्ष

सी ++ में, एसटीडी :: सरणी वर्ग कुछ उपयोगी कार्यों और प्रकार और श्रेणी सुरक्षा के फायदों के साथ-साथ निश्चित आकार के सरणियों के साथ काम करने का एक व्यावहारिक तरीका प्रदान करता है। आरंभीकरण और सीमा जाँच के लिए, यह एक स्पष्ट, अधिक समझने योग्य सिंटैक्स प्रदान करता है, जो कई विशिष्ट प्रोग्रामिंग गलतियों से बचने में मदद कर सकता है। अधिकांश स्थितियों के लिए जब निश्चित आकार के सरणियों का उपयोग किया जाना चाहिए, तो std::array के उपयोग की सलाह दी जाती है क्योंकि यह उन्हें हेरफेर करने की अधिक अद्यतित और सुरक्षित विधि प्रदान करता है।