C ++ बहुआयामी एरेज़ (2 और 3 डी सरणियाँ)

इस ट्यूटोरियल में, हम C ++ में बहुआयामी सरणियों के बारे में जानेंगे। अधिक विशेष रूप से, उन्हें घोषित करने, उन्हें एक्सेस करने और हमारे कार्यक्रम में कुशलता से उपयोग करने का तरीका।

C ++ में, हम एक सरणी का एक सरणी बना सकते हैं, जिसे बहुआयामी सरणी के रूप में जाना जाता है। उदाहरण के लिए:

 int x(3)(4);

यहाँ, x एक द्वि-आयामी सरणी है। यह अधिकतम 12 तत्वों को पकड़ सकता है।

हम इस सरणी को 3 पंक्तियों वाली तालिका के रूप में सोच सकते हैं और प्रत्येक पंक्ति में 4 कॉलम हैं जैसा कि नीचे दिखाया गया है।

C ++ प्रोग्रामिंग में दो आयामी सरणी में तत्व

त्रि-आयामी सरणियाँ भी इसी तरह से काम करती हैं। उदाहरण के लिए:

 float x(2)(4)(3);

यह सरणी x अधिकतम 24 तत्वों को पकड़ सकता है।

हम सरणी में तत्वों की कुल संख्या को इसके आयामों को गुणा करके जान सकते हैं:

 2 x 4 x 3 = 24

बहुआयामी ऐरे प्रारंभ

एक सामान्य सरणी की तरह, हम एक से अधिक तरीकों से एक बहुआयामी सरणी को इनिशियलाइज़ कर सकते हैं।

1. द्वि-आयामी सरणी का प्रारंभ

 int test(2)(3) = (2, 4, 5, 9, 0, 19);

उपरोक्त विधि पसंद नहीं है। इस सरणी तत्वों के साथ इस सरणी को आरंभीकृत करने का एक बेहतर तरीका नीचे दिया गया है:

 int test(2)(3) = ( (2, 4, 5), (9, 0, 19));

इस सरणी में 2 पंक्तियाँ और 3 कॉलम हैं, यही वजह है कि हमारे पास तत्वों की दो पंक्तियाँ हैं जिनमें से प्रत्येक में 3 तत्व हैं।

C ++ में द्वि-आयामी सरणी को प्रारंभ करना

2. त्रि-आयामी सरणी का प्रारंभ

 int test(2)(3)(4) = (3, 4, 2, 3, 0, -3, 9, 11, 23, 12, 23, 2, 13, 4, 56, 3, 5, 9, 3, 5, 5, 1, 4, 9);

यह त्रि-आयामी सरणी को आरम्भ करने का एक अच्छा तरीका नहीं है। इस एरे को इनिशियलाइज़ करने का एक बेहतर तरीका है:

 int test(2)(3)(4) = ( ( (3, 4, 2, 3), (0, -3, 9, 11), (23, 12, 23, 2) ), ( (13, 4, 56, 3), (5, 9, 3, 5), (5, 1, 4, 9) ) );

इस त्रि-आयामी सरणी के आयामों पर ध्यान दें।

पहले आयाम का मूल्य है 2। तो, पहले आयाम वाले दो तत्व हैं:

 तत्व 1 = ((3, 4, 2, 3), (0, -3, 9, 11), (23, 12, 23, 2) तत्व 2 = ((13, 4, 56, 3), ( 5, 9, 3, 5), (5, 1, 4, 9)) 

दूसरे आयाम का मूल्य है 3। ध्यान दें कि पहले आयाम के प्रत्येक तत्व में तीन तत्व हैं:

 (3, 4, 2, 3), (0, -3, 9, 11) और (23, 12, 23, 2) तत्व 1. के लिए (13, 4, 56, 3), (5, 9, 3) 5) और (5, 1, 4, 9) तत्व 2 के लिए।

अंत में, intदूसरे आयाम के प्रत्येक तत्व के अंदर चार संख्याएँ होती हैं :

 (3, 4, 2, 3) (0, -3, 9, 11)… 

उदाहरण 1: दो आयामी सरणी

 // C++ Program to display all elements // of an initialised two dimensional array #include using namespace std; int main() ( int test(3)(2) = ((2, -5), (4, 0), (9, 1)); // use of nested for loop // access rows of the array for (int i = 0; i < 3; ++i) ( // access columns of the array for (int j = 0; j < 2; ++j) ( cout << "test(" << i << ")(" << j << ") = " << test(i)(j) << endl; ) ) return 0; )

आउटपुट

 परीक्षण (0) (0) = 2 परीक्षण (0) (-1) = -5 परीक्षण (1) (0) = 4 परीक्षण (1) (1) = 0 परीक्षण (2) (0) = 9 परीक्षण (2) (१) = १

उपर्युक्त उदाहरण में, हमने एक दो-आयामी intसरणी नाम का परीक्षण शुरू किया है जिसमें 3 "पंक्तियाँ" और 2 "कॉलम" हैं।

यहां, हमने forएरे तत्वों को प्रदर्शित करने के लिए नेस्टेड लूप का उपयोग किया है ।

  • सरणी की पंक्तियों तक पहुँचने के i == 0लिए बाहरी लूपi == 2
  • सरणी के स्तंभों तक पहुँचने के j == 0लिए आंतरिक लूपj == 1

अंत में, हम प्रत्येक पुनरावृत्ति में सरणी तत्वों को प्रिंट करते हैं।

उदाहरण 2: दो आयामी सरणी के लिए इनपुट लेना

 #include using namespace std; int main() ( int numbers(2)(3); cout << "Enter 6 numbers: " << endl; // Storing user input in the array for (int i = 0; i < 2; ++i) ( for (int j = 0; j > numbers(i)(j); ) ) cout << "The numbers are: " << endl; // Printing array elements for (int i = 0; i < 2; ++i) ( for (int j = 0; j < 3; ++j) ( cout << "numbers(" << i << ")(" << j << "): " << numbers(i)(j) << endl; ) ) return 0; )

आउटपुट

 6 संख्याएँ दर्ज करें: 1 2 3 4 5 6 संख्याएँ हैं: संख्याएँ (0) (0): 1 संख्याएँ (0) (1): 2 संख्याएँ (0) (2): 3 संख्याएँ (1) (0): 4 नंबर (1) (1): 5 नंबर (1) (2): 6

Here, we have used a nested for loop to take the input of the 2d array. Once all the input has been taken, we have used another nested for loop to print the array members.

Example 3: Three Dimensional Array

 // C++ Program to Store value entered by user in // three dimensional array and display it. #include using namespace std; int main() ( // This array can store upto 12 elements (2x3x2) int test(2)(3)(2) = ( ( (1, 2), (3, 4), (5, 6) ), ( (7, 8), (9, 10), (11, 12) ) ); // Displaying the values with proper index. for (int i = 0; i < 2; ++i) ( for (int j = 0; j < 3; ++j) ( for (int k = 0; k < 2; ++k) ( cout << "test(" << i << ")(" << j << ")(" << k << ") = " << test(i)(j)(k) << endl; ) ) ) return 0; )

Output

 test(0)(0)(0) = 1 test(0)(0)(1) = 2 test(0)(1)(0) = 3 test(0)(1)(1) = 4 test(0)(2)(0) = 5 test(0)(2)(1) = 6 test(1)(0)(0) = 7 test(1)(0)(1) = 8 test(1)(1)(0) = 9 test(1)(1)(1) = 10 test(1)(2)(0) = 11 test(1)(2)(1) = 12

The basic concept of printing elements of a 3d array is similar to that of a 2d array.

However, since we are manipulating 3 dimensions, we use a nested for loop with 3 total loops instead of just 2:

  • the outer loop from i == 0 to i == 1 accesses the first dimension of the array
  • the middle loop from j == 0 to j == 2 accesses the second dimension of the array
  • से अंतरतम पाश k == 0करने के लिए k == 1सरणी के तीसरे आयाम तक पहुँचता है

जैसा कि हम देख सकते हैं, सरणी की जटिलता आयामों में वृद्धि के साथ तेजी से बढ़ जाती है।

दिलचस्प लेख...