द्वि-आयामी सरणियाँ। मूल बातें


2डी सरणी

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

एक प्रोग्राम में एक मैट्रिक्स का उपयोग करने के लिए, इसे डेटा प्रकार और दो आकारों (संख्या या स्थिरांक) को निर्दिष्ट करते हुए, एक नियमित सरणी की तरह ही घोषित किया जाना चाहिए। प्रारंभिक मूल्यों को तुरंत सेट करना भी संभव (और वांछनीय) है। उदाहरण के लिए, सभी तत्वों को रीसेट करें।
उदाहरण 1: मनमाना प्रारंभिक मानों के साथ 3 पंक्तियों और 3 स्तंभों की एक सरणी घोषित करना <पूर्व> intA[3][3] = {{0,1,2}, {3,4,5}, {6,7,8}}; उदाहरण 2: शून्य आरंभिक मानों के साथ 5 पंक्तियों और 10 स्तंभों (आकार को एक स्थिरांक के माध्यम से सेट किया गया है) की एक सरणी घोषित करना <पूर्व> कास्ट इंट एन = 5, एम = 10; डबल बी [एन] [एम] = {}; मैट्रिक्स के एक विशिष्ट तत्व को संदर्भित करने के लिए, हम दो जोड़े कोष्ठक का उपयोग करते हैं, पहले कोष्ठक में हम पंक्ति संख्या को इंगित करते हैं, दूसरे में - स्तंभ संख्या।
उदाहरण:   <पूर्व> ए [0] [2] = 100; // पंक्तियों और स्तंभों की संख्या शून्य से शुरू होती है

मैट्रिक्स भरना और इसे प्रदर्शित करना

पूरे मैट्रिक्स को पार करने के लिए, नेस्टेड लूप की आवश्यकता होती है। आइए एक प्रोग्राम के उदाहरण का उपयोग करके एक मैट्रिक्स को भरना और आउटपुट करना देखें जो कीबोर्ड से तत्वों के मूल्यों का अनुरोध करता है और स्क्रीन पर भरे हुए मैट्रिक्स को प्रदर्शित करता है। <पूर्व> #शामिल <iostream> नेमस्पेस एसटीडी का उपयोग करना; मुख्य प्रवेश बिंदु() { / * द्वि-आयामी सरणी घोषित करना * / कास्ट इंट एन = 2, एम = 3; इंट ए [एन] [एम]; / * मैट्रिक्स के तत्वों को कीबोर्ड लाइन से लाइन में भरें * / इंट आई, जे; के लिए (i = 0; i < N; i++) के लिए (जे = 0; जे एंड लेफ्टिनेंट; एम; जे ++) सिने>> ए [मैं] [जे]; // मैट्रिक्स के सभी तत्वों को लाइन द्वारा स्क्रीन लाइन पर प्रदर्शित करें for (i = 0; i < N; i++) { // बाहरी पाश पंक्तियों पर पुनरावृति के लिए जिम्मेदार है for (j = 0; j < M; j++) // लूप स्ट्रिंग के तत्वों को प्रदर्शित करने के लिए cout << ए [मैं] [जे] << " "; cout << एंडल; // j-th लाइन के तत्वों को प्रदर्शित करने के बाद, हम एक नई लाइन पर जाते हैं } वापसी 0; } उपरोक्त उदाहरण में, मैट्रिक्स को भरना और प्रदर्शित करना दोनों पंक्ति से पंक्ति में होता है (पहले हम सभी मानों j - स्तंभों के सूचकांक से गुजरते हैं, और उसके बाद ही पंक्ति सूचकांक में परिवर्तन होता है - j >i)
लूप (बाहरी के साथ आंतरिक) की अदला-बदली करके, आप कॉलम द्वारा एक सरणी भर सकते हैं और / या आउटपुट कर सकते हैं