अध्याय 7: C++ में एर्रे(C++ Arrays)

अध्याय 7: C++ में एर्रे(C++ Arrays)

C++ में एर्रे (Arrays) एक महत्वपूर्ण डेटा संरचना है जो एक ही प्रकार के कई मानों को संगठित और कुशलता से संग्रहीत करने की अनुमति देती है। एर्रे का उपयोग करके आप एक ही वेरिएबल में कई मानों को एक साथ स्टोर कर सकते हैं, जिससे डेटा प्रबंधन अधिक सरल और प्रभावी हो जाता है। इस अध्याय में, हम C++ में एर्रे की अवधारणा, उसकी घोषणा और प्रारंभिककरण, और विभिन्न प्रकार के एर्रे जैसे कि एक-आयामी (One-Dimensional) और बहु-आयामी (Multidimensional) एर्रे के बारे में विस्तार से जानेंगे। इसके साथ ही, हम एर्रे के साथ बुनियादी संचालन जैसे इटरेशन, मानों को पढ़ना और लिखना, और सामान्य समस्याओं को हल करने का तरीका भी सीखेंगे। इस अध्याय के अंत तक, आप एर्रे का सही उपयोग कर अपने प्रोग्राम्स को अधिक संगठित और कुशल बनाने में सक्षम होंगे।

एर्रे क्या हैं? (What are Arrays?)

C++ में एर्रे (Arrays) एक डेटा संरचना है, जो एक ही प्रकार के कई मानों (values) को संगठित और कुशलता से स्टोर करने की अनुमति देती है। एर्रे का उपयोग तब किया जाता है जब आपको एक ही प्रकार के कई मानों को एक साथ संग्रहीत करने की आवश्यकता होती है, जैसे कि अंकों की सूची, छात्रों के नाम, या किसी अन्य प्रकार का डेटा। एर्रे एक वेरिएबल के अंदर संग्रहीत समान प्रकार के तत्वों (elements) का क्रमबद्ध संग्रह होता है, और इन तत्वों को उनकी स्थिति (index) के आधार पर एक्सेस किया जा सकता है।

एर्रे की विशेषताएँ

  1. समान डेटा प्रकार: एर्रे में केवल एक ही प्रकार के डेटा को संग्रहीत किया जा सकता है। उदाहरण के लिए, आप एक एर्रे में सभी int प्रकार के मानों को स्टोर कर सकते हैं, लेकिन आप उसी एर्रे में int और float दोनों को एक साथ स्टोर नहीं कर सकते।
  2. संगठित संग्रह: एर्रे के प्रत्येक तत्व को एक विशिष्ट इंडेक्स (index) द्वारा पहचाना जाता है, जो 0 से शुरू होता है। इसका मतलब है कि यदि आपके पास 10 तत्वों का एर्रे है, तो इंडेक्स 0 से 9 तक होगा।
  3. स्थिर आकार: एर्रे का आकार उसकी घोषणा के समय तय किया जाता है और प्रोग्राम के दौरान इसे बदला नहीं जा सकता। आपको पहले से यह जानना होगा कि आपको कितने तत्व संग्रहीत करने हैं।

एर्रे की घोषणा (Array Declaration)

C++ में एर्रे को निम्नलिखित सिंटैक्स का उपयोग करके घोषित किया जाता है:

data_type array_name[array_size];
  • data_type: यह एर्रे में संग्रहीत किए जाने वाले तत्वों का प्रकार है, जैसे कि int, float, char, आदि।
  • array_name: यह एर्रे का नाम है, जो एक वेरिएबल की तरह होता है।
  • array_size: यह एर्रे में संग्रहीत किए जा सकने वाले तत्वों की संख्या है।

उदाहरण:

int numbers[5];  // 5 तत्वों का एक एर्रे जिसमें `int` प्रकार के मान संग्रहीत होंगे

इस उदाहरण में, numbers एक एर्रे है जिसमें 5 int प्रकार के मान संग्रहीत किए जा सकते हैं।

एर्रे का प्रारंभिककरण (Array Initialization)

एर्रे को उसकी घोषणा के समय भी प्रारंभिक (initialize) किया जा सकता है:

int numbers[5] = {1, 2, 3, 4, 5};  // एर्रे को प्रारंभिक मानों के साथ सेट करना

इस उदाहरण में, numbers एर्रे के प्रत्येक तत्व को एक विशिष्ट मान प्रदान किया गया है।

C++ में आप एर्रे को प्रारंभिक मानों के साथ बिना आकार (size) निर्दिष्ट किए भी प्रारंभ कर सकते हैं। जब आप एर्रे को इस प्रकार से प्रारंभ करते हैं, तो कंपाइलर एर्रे के आकार को उन मानों की संख्या के आधार पर स्वचालित रूप से निर्धारित कर लेता है।

int numbers[] = {10, 20, 30, 40, 50};

 

एर्रे के तत्वों तक पहुँच (Accessing Array Elements)

एर्रे के किसी भी तत्व तक पहुँचने के लिए, उसका इंडेक्स प्रदान किया जाता है:

cout << numbers[0];  // एर्रे के पहले तत्व (इंडेक्स 0) का मान प्रदर्शित करेगा

उदाहरण: एर्रे का उपयोग

#include <iostream>
using namespace std;

int main() {
    int numbers[5] = {10, 20, 30, 40, 50};

    // एर्रे के तत्वों को प्रदर्शित करना
    for(int i = 0; i < 5; i++) {
        cout << "Element at index " << i << " is: " << numbers[i] << endl;
    }

    return 0;
}

इस उदाहरण में, numbers एर्रे के प्रत्येक तत्व को प्रदर्शित किया गया है।

मुख्य बिंदु

  • स्थिर आकार: एक बार एर्रे का आकार तय हो जाने के बाद, उसे प्रोग्राम के दौरान बदला नहीं जा सकता।
  • सीमित प्रकार: एर्रे केवल एक ही प्रकार के डेटा को संग्रहीत कर सकते हैं।
  • इंडेक्सिंग: एर्रे के तत्व 0-आधारित इंडेक्स के साथ एक्सेस किए जाते हैं।

एर्रे तत्व को अपडेट करना (Updating Array Element)

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

int numbers[] = {10, 20, 30, 40, 50};

// तीसरे तत्व (इंडेक्स 2) को अपडेट करना
numbers[2] = 100;

उदाहरण:

#include <iostream>
using namespace std;

int main() {
    // एर्रे को प्रारंभ करना
    int numbers[] = {10, 20, 30, 40, 50};

    // तीसरे तत्व (इंडेक्स 2) को अपडेट करना
    numbers[2] = 100;

    // सभी एर्रे तत्वों को प्रदर्शित करना
    for(int i = 0; i < 5; i++) {
        cout << "Element at index " << i << " is: " << numbers[i] << endl;
    }

    return 0;
}

आउटपुट:

Element at index 0 is: 10
Element at index 1 is: 20
Element at index 2 is: 100
Element at index 3 is: 40
Element at index 4 is: 50

इस उदाहरण में, numbers[2] को 30 से 100 में अपडेट किया गया है।

मुख्य बिंदु:

  • इंडेक्सिंग: एर्रे तत्वों को अपडेट करने के लिए, उनके इंडेक्स का उपयोग किया जाता है। इंडेक्स 0 से शुरू होते हैं।
  • सिंपल असाइनमेंट: आप किसी भी एर्रे तत्व को एक नए मान के साथ असाइन करके उसे अपडेट कर सकते हैं, जैसा कि आप किसी साधारण वेरिएबल के साथ करते हैं।

एर्रे का आकार (Size of an Array) in C++

C++ में, एर्रे का आकार (size) यह दर्शाता है कि एर्रे में कितने तत्व संग्रहीत किए जा सकते हैं। एर्रे का आकार उसके निर्माण के समय तय होता है और प्रोग्राम के दौरान इसे बदला नहीं जा सकता। एर्रे के आकार की गणना करने के लिए, आप sizeof ऑपरेटर का उपयोग कर सकते हैं। यह ऑपरेटर एर्रे की कुल मेमोरी का आकार बाइट्स में लौटाता है, और इसे एर्रे के किसी भी तत्व के आकार से विभाजित करके एर्रे में मौजूद तत्वों की संख्या प्राप्त की जा सकती है।

एर्रे के आकार की गणना करने का तरीका

data_type size = sizeof(Array_name)

उदाहरण:

#include <iostream>
using namespace std;

int main() {
    int numbers[] = {10, 20, 30, 40, 50};  // एक 5-तत्वों का एर्रे

    // एर्रे के कुल बाइट्स का आकार
    int totalSize = sizeof(numbers);

    // एर्रे के एक तत्व का आकार
    int elementSize = sizeof(numbers[0]);

    // एर्रे में कुल तत्वों की संख्या
    int arraySize = totalSize / elementSize;

    cout << "Total size of the array in bytes: " << totalSize << " bytes" << endl;
    cout << "Size of one element: " << elementSize << " bytes" << endl;
    cout << "Number of elements in the array: " << arraySize << endl;

    return 0;
}

आउटपुट:

Total size of the array in bytes: 20 bytes
Size of one element: 4 bytes
Number of elements in the array: 5

मुख्य बिंदु:

  1. sizeof ऑपरेटर:
    • sizeof(numbers): यह एर्रे के सभी तत्वों की कुल मेमोरी का आकार (बाइट्स में) लौटाता है।
    • sizeof(numbers[0]): यह एर्रे के एक तत्व का आकार (बाइट्स में) लौटाता है।
  2. एर्रे का आकार निकालना:
    • एर्रे के कुल आकार को उसके एक तत्व के आकार से विभाजित करके, आप एर्रे में मौजूद तत्वों की कुल संख्या प्राप्त कर सकते हैं।

C++ में मल्टी-डायमेंशनल एर्रे (Multidimensional Arrays in C++)

C++ में मल्टी-डायमेंशनल एर्रे का उपयोग तब किया जाता है जब हमें एक से अधिक डायमेंशन (dimension) में डेटा संग्रहीत करने की आवश्यकता होती है। सबसे सामान्य प्रकार का मल्टी-डायमेंशनल एर्रे दो-डायमेंशनल (2D) एर्रे होता है, जिसे अक्सर मैट्रिक्स (matrix) के रूप में देखा जाता है। 2D एर्रे का उपयोग डेटा को पंक्तियों और स्तंभों (rows and columns) के रूप में संगठित करने के लिए किया जाता है।

1. 2D एर्रे की घोषणा और प्रारंभिककरण (Declaration and Initialization of 2D Array)

2D एर्रे की घोषणा और प्रारंभिककरण निम्नलिखित सिंटैक्स का उपयोग करके किया जाता है:

data_type array_name[rows][columns];
  • data_type: यह एर्रे में संग्रहीत किए जाने वाले तत्वों का प्रकार है, जैसे int, float, आदि।
  • array_name: यह एर्रे का नाम है।
  • rows और columns: ये एर्रे में पंक्तियों और स्तंभों की संख्या को निर्दिष्ट करते हैं।

उदाहरण:

int matrix[3][4];  // 3 पंक्तियों और 4 स्तंभों वाला 2D एर्रे

2. 2D एर्रे का प्रारंभिककरण (Initialization of 2D Array)

आप 2D एर्रे को घोषणा के समय ही प्रारंभिक मानों के साथ सेट कर सकते हैं:

int matrix[3][4] = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}
};

इस उदाहरण में, matrix नामक 2D एर्रे में 3 पंक्तियाँ और 4 स्तंभ हैं, और इसे प्रारंभिक मानों के साथ सेट किया गया है।

3. 2D एर्रे के तत्वों तक पहुँच (Accessing Elements in 2D Array)

आप 2D एर्रे के किसी भी तत्व तक उसकी पंक्ति और स्तंभ के इंडेक्स का उपयोग करके पहुँच सकते हैं:

int value = matrix[1][2];  // दूसरी पंक्ति और तीसरे स्तंभ का मान एक्सेस करना (जो 7 है)

4. 2D एर्रे के तत्वों को प्रदर्शित करना (Displaying Elements of 2D Array)

आप nested loops का उपयोग करके 2D एर्रे के सभी तत्वों को प्रदर्शित कर सकते हैं:

#include <iostream>
using namespace std;

int main() {
    int matrix[3][4] = {
        {1, 2, 3, 4},
        {5, 6, 7, 8},
        {9, 10, 11, 12}
    };

    // 2D एर्रे के तत्वों को प्रदर्शित करना
    for(int i = 0; i < 3; i++) {
        for(int j = 0; j < 4; j++) {
            cout << "Element at (" << i << ", " << j << ") is: " << matrix[i][j] << endl;
        }
    }

    return 0;
}

आउटपुट:

Element at (0, 0) is: 1
Element at (0, 1) is: 2
Element at (0, 2) is: 3
Element at (0, 3) is: 4
Element at (1, 0) is: 5
Element at (1, 1) is: 6
Element at (1, 2) is: 7
Element at (1, 3) is: 8
Element at (2, 0) is: 9
Element at (2, 1) is: 10
Element at (2, 2) is: 11
Element at (2, 3) is: 12

5. मल्टी-डायमेंशनल एर्रे के अन्य प्रकार (Other Types of Multidimensional Arrays)

हालाँकि 2D एर्रे सबसे सामान्य प्रकार के मल्टी-डायमेंशनल एर्रे होते हैं, आप तीन या अधिक डायमेंशन वाले एर्रे भी बना सकते हैं:

उदाहरण:

int threeDArray[2][3][4];  // 2x3x4 का एक 3D एर्रे


Index