C ++ में Arrays - घोषणा - प्रारंभिक - एरे उदाहरणों को इंगित करता है

विषय - सूची:

Anonim

एक ऐरे क्या है?

एक सरणी एक डेटा संरचना है जो समान डेटा प्रकार के एक तत्व को क्रमिक रूप से संग्रहीत करती है। C ++ सरणी का एक निश्चित आकार है।

आप एक सरणी को एक समान डेटा प्रकार के चर के संग्रह के रूप में देख सकते हैं। प्रत्येक चर को घोषित करने और इसे व्यक्तिगत रूप से मान देने के बजाय, आप एक चर (सरणी) की घोषणा कर सकते हैं और विभिन्न चर के मूल्यों को इसमें जोड़ सकते हैं। प्रत्येक मान को सरणी में जोड़ा जाता है जो एक सूचकांक द्वारा पहचाना जाता है।

इस C ++ ट्यूटोरियल में, आप सीखेंगे:

  • एक ऐरे क्या है?
  • हमें सरणियों की आवश्यकता क्यों है?
  • C ++ में एक सरणी घोषित करें
  • ऐरे प्रारंभिक
  • Arrays के प्रकार
    • एक-आयामी सरणी
    • बहुआयामी ऐरे
    • दो आयामी ऐरे
    • तीन-आयामी सरणी
    • एक सूचक को इंगित करता है
  • एक ऐरे के मूल्यों तक पहुँचना
  • C ++ में एक ऐरे का लाभ
  • C ++ में एक सरणी का नुकसान

हमें सरणियों की आवश्यकता क्यों है?

किसी भी प्रोग्रामिंग भाषा में ऐरे बहुत महत्वपूर्ण हैं। वे अलग-अलग स्टोर करने के बजाय एक समान डेटा प्रकार के स्टोरेज वैरिएबल या संग्रहण का अधिक सुविधाजनक तरीका प्रदान करते हैं। सरणी के प्रत्येक मान को अलग से एक्सेस किया जाएगा।

C ++ में एक सरणी घोषित करें

C ++ में एरे की घोषणा में प्रकार के साथ-साथ सरणी द्वारा संग्रहीत किए जाने वाले तत्वों की संख्या शामिल है। वाक्य - विन्यास:

type array-Name [ array-Size ];

C ++ में एकल-आयाम सरणी घोषित करने के लिए नियम।

  • प्रकार: प्रकार सरणी में संग्रहीत किए जाने वाले तत्व का प्रकार है, और यह एक मान्य C ++ डेटा प्रकार होना चाहिए।
  • सरणी-नाम: सरणी-नाम सरणी को सौंपा जाने वाला नाम है।
  • सरणी-आकार: सरणी-आकार सरणी में संग्रहीत किए जाने वाले तत्वों की संख्या है। यह पूर्णांक और 0 से अधिक होना चाहिए।

उदाहरण के लिए, आप उम्र नाम की एक सारणी बना सकते हैं और 5 छात्रों की आयु को निम्नानुसार संग्रहीत कर सकते हैं:

int age[5];

सरणी आयु अलग-अलग छात्रों की आयु का प्रतिनिधित्व करने वाले 5 पूर्णांक को संग्रहीत करेगा।

ऐरे प्रारंभिक

सरणी आरंभीकरण एक सरणी में तत्वों को असाइन / संग्रहीत करने की प्रक्रिया है। इनिशियलाइजेशन एक स्टेटमेंट या एक-एक करके किया जा सकता है। ध्यान दें कि सरणी में पहला तत्व 0 इंडेक्स में संग्रहीत किया गया है, जबकि अंतिम तत्व इंडेक्स n-1 पर संग्रहीत है, जहां n एरे में तत्वों की कुल संख्या है।

आयु सरणी के मामले में, पहला तत्व इंडेक्स 0 पर संग्रहीत किया जाएगा, जबकि अंतिम तत्व इंडेक्स 4 में संग्रहीत किया जाएगा।

आइए हम आयु सरणी का उपयोग करके यह दर्शाते हैं कि सरणी आरंभीकरण कैसे किया जा सकता है:

int age[5] = {19, 18, 21, 20, 17};

{} के भीतर तत्वों की कुल संख्या [] के भीतर बताए गए मूल्य से अधिक नहीं हो सकती। तत्व 19 इंडेक्स 0 पर, इंडेक्स 1 पर 18, इंडेक्स 2 पर 21, इंडेक्स 3 में 20 और इंडेक्स 4 में 17 है। यदि आप ऐरे में स्टोर किए जाने वाले तत्वों की संख्या नहीं बताते हैं [,] केवल {} में जोड़े गए तत्वों को रखने के लिए पर्याप्त बड़ा होगा। उदाहरण के लिए:

int age[] = {19, 18, 21, 20, 17};

उपरोक्त कथन पिछले वाले के समान ही सरणी बनाएगा। आप इसके अनुक्रमणिका का उपयोग करके एक तत्व को एक सरणी में भी असाइन कर सकते हैं। उदाहरण के लिए:

age[3] = 20;

उपर्युक्त कथन मान नाम की आयु के सूचकांक 3 पर मूल्य 20 को संग्रहीत करेगा। इसका मतलब है कि 20 सरणी का 4 वें तत्व होगा ।

Arrays के प्रकार

C ++ सरणियों के दो प्रकार हैं:

  • एक आयामी ऐरे
  • बहुआयामी ऐरे
  • एक सूचक को इंगित करता है

एक-आयामी सरणी

यह एक सरणी है जिसमें डेटा आइटम केवल एक आयाम में रैखिक रूप से व्यवस्थित किए जाते हैं। इसे आमतौर पर 1-डी सरणी कहा जाता है। वाक्य - विन्यास:

datatype array-name[size];
  • सरणी-नाम सरणी का नाम है।
  • आकार सरणी में संग्रहीत की जाने वाली वस्तुओं की संख्या है।

उदाहरण के लिए:

#include using namespace std;int main(){int age[5] = { 19, 18, 21, 20, 17 };for (int x = 0; x < 5; x++){cout <

आउटपुट:

यहाँ कोड का एक स्क्रीनशॉट है:

कोड स्पष्टीकरण:

  1. हमारे कोड में iostream हेडर फ़ाइल शामिल है। यह हमें कंसोल से पढ़ने और लिखने की अनुमति देगा।
  2. जिसमें स्टैड नेमस्पेस भी शामिल है ताकि बिना बुलाए अपनी कक्षाओं और कार्यों का उपयोग किया जा सके।
  3. मुख्य () फ़ंक्शन को कॉल करना जिसके अंदर कार्यक्रम का तर्क जोड़ा जाना चाहिए।
  4. मुख्य () फ़ंक्शन के शरीर की शुरुआत।
  5. 5 पूर्णांकों को संग्रहीत करने के लिए आयु नामक एक ऐलान की घोषणा। 5 पूर्णांकों को भी प्रारंभ किया गया है।
  6. लूप के लिए एक पूर्णांक चर x बनाएँ।
  7. लूप के लिए शरीर की शुरुआत।
  8. सरणी आयु के मूल्यों पर पुनरावृति करने के लिए लूप वेरिएबल x का उपयोग करना और उन्हें कंसोल पर प्रिंट करना। "\ N" एक नया वर्ण है और प्रत्येक पुनरावृत्ति के बाद एक नई पंक्ति में प्रिंट करता है।
  9. एक पाश के लिए शरीर का अंत।
  10. मुख्य () फ़ंक्शन के शरीर का अंत।

बहुआयामी ऐरे

यह एक सरणी है जिसमें डेटा आइटम्स को सारणियों की एक सरणी बनाने के लिए व्यवस्थित किया जाता है। एक बहु-आयामी सरणी में किसी भी आयाम हो सकते हैं, लेकिन दो-आयामी और तीन-आयामी सरणियाँ आम हैं। वाक्य - विन्यास:

datatype array-name[d1][d2][d3]… [dn];

सरणी-नाम उस सरणी का नाम है जिसमें n आयाम होंगे। उदाहरण के लिए:

दो आयामी ऐरे

एक 2 डी सरणी 1-डी सरणी के साथ एक सूची में डेटा संग्रहीत करता है। यह रो और कॉलम के साथ एक मैट्रिक्स है। 2 डी सरणी घोषित करने के लिए, निम्नलिखित सिंटैक्स का उपयोग करें:

type array-Name [ x ][ y ];

प्रकार एक मान्य C ++ डेटा प्रकार होना चाहिए। एक तालिका के रूप में एक 2 डी सरणी देखें, जहां x पंक्तियों की संख्या को दर्शाता है जबकि y स्तंभों की संख्या को दर्शाता है। इसका अर्थ यह है कि आप प्रत्येक तत्व को 2D एक्स में एक [x] [y] फॉर्म का उपयोग करते हुए पहचानते हैं, जहाँ x पंक्ति की संख्या है और y उस कॉलम की संख्या है जिसमें तत्व है।

यहाँ एक उदाहरण दिया गया है कि 2 डी सरणी को कैसे आरंभ किया जाए:

int a[2][3] = {{0, 2, 1} , /* row at index 0 */{4, 3, 7} , /* row at index 1 */};

उपरोक्त उदाहरण में, हमारे पास एक 2 डी सरणी है जिसे 2x3 मैट्रिक्स के रूप में देखा जा सकता है। 2 पंक्तियाँ और 3 कॉलम हैं। तत्व 0 को [0] [1] के रूप में एक्सेस किया जा सकता है क्योंकि यह पंक्ति अनुक्रमित 0 और कॉलम अनुक्रमित 1 के चौराहे पर स्थित है। तत्व 3 को [1] [2] के रूप में एक्सेस किया जा सकता है क्योंकि यह स्थित है अनुक्रमित पंक्ति 1 और स्तंभ अनुक्रमित 2 का प्रतिच्छेदन।

ध्यान दें कि हमने तत्वों की विभिन्न पंक्तियों को अलग करने के लिए केवल घुंघराले ब्रेसिज़ जोड़े हैं। प्रारंभ निम्नानुसार भी किया जा सकता था:

int a[2][3] = {0, 2, 1, 4, 3, 7};};

निम्नलिखित C ++ उदाहरण दर्शाता है कि एक 2D सरणी को कैसे आरंभ और कैसे पार किया जाए:

#include using namespace std;int main(){// a 2x3 arrayint a[3][2] = { {0, 2}, {1, 4}, {3, 7} };// traverse array elementsfor (int i=0; i<3; i++)for (int j=0; j<2; j++){cout << "a[" <

आउटपुट:

यहाँ उपरोक्त कोड का एक स्क्रीनशॉट है:

कोड स्पष्टीकरण:

  1. हमारे कोड में iostream हेडर फ़ाइल शामिल है। यह हमें कंसोल से पढ़ने और लिखने की अनुमति देगा।
  2. जिसमें स्टैड नेमस्पेस भी शामिल है ताकि बिना बुलाए अपनी कक्षाओं और कार्यों का उपयोग किया जा सके।
  3. मुख्य () फ़ंक्शन को कॉल करना जिसके भीतर कोड जोड़ा जाना चाहिए।
  4. मुख्य () फ़ंक्शन के शरीर की शुरुआत।
  5. एक टिप्पणी। C ++ कंपाइलर इसे छोड़ देगा।
  6. 3 पंक्तियों और 2 स्तंभों के 2 डी सरणी की घोषणा। आइटम को सरणी में भी जोड़ा गया है।
  7. एक टिप्पणी। C ++ कंपाइलर इसे छोड़ देगा।
  8. एक लूप के लिए उपयोग करके एक वैरिएबल बनाना। यह चर सरणी के रो इंडेक्स पर पुनरावृति करेगा।
  9. एक लूप के लिए एक वेरिएबल जे बनाकर। यह चर सरणी के कॉलम इंडेक्स पर पुनरावृति करेगा।
  10. छोरों के शरीर की शुरुआत।
  11. कंसोल पर वर्गाकार कोष्ठक के अंदर कंसोल पर वैरिएबल i और j के मान प्रिंट करें।
  12. अनुक्रमणिका [i] [j] के सरणी पर संग्रहीत मान को प्रिंट करें a।
  13. छोरों के शरीर का अंत।
  14. यदि प्रोग्राम ठीक चलता है तो मुख्य () फ़ंक्शन को पूर्णांक मान वापस करना चाहिए।
  15. मुख्य () फ़ंक्शन के शरीर का अंत।

तीन-आयामी सरणी

एक 3D सरणी सरणियों का एक सरणी है। 3 डी ऐरे में प्रत्येक तत्व को 3 इंडेक्स के सेट से पहचाना जाता है। एक 3D सरणी के तत्वों तक पहुंचने के लिए, हम तीन छोरों के लिए उपयोग करते हैं। उदाहरण के लिए:

#includeusing namespace std;void main(){int a[2][3][2] = {{{4, 8},{2, 4},{1, 6}}, {{3, 6},{5, 4},{9, 3}}};cout << "a[0][1][0] = " << a[0][1][0] << "\n";cout << "a[0][1][1] = " << a[0][1][1] << "\n";}

आउटपुट:

यहाँ कोड का एक स्क्रीनशॉट है:

कोड स्पष्टीकरण:

  1. हमारे कोड में iostream हेडर फ़ाइल शामिल है। यह हमें कंसोल से पढ़ने और लिखने की अनुमति देगा।
  2. जिसमें स्टैड नेमस्पेस भी शामिल है ताकि बिना बुलाए अपनी कक्षाओं और कार्यों का उपयोग किया जा सके।
  3. मुख्य () फ़ंक्शन को कॉल करना जिसके अंदर कार्यक्रम का तर्क जोड़ा जाना चाहिए।
  4. मुख्य () फ़ंक्शन के शरीर की शुरुआत।
  5. 3D सरणी की घोषणा करते हुए आकार का 2x3x2 नाम दिया गया। सरणी के मानों को भी आरंभीकृत किया गया है।
  6. अनुक्रमणिका [0] [1] [०] पर संग्रहीत आइटम को एक्सेस करना और इसे कंसोल पर प्रिंट करना।
  7. अनुक्रमणिका [0] [1] [१] पर संग्रहीत आइटम तक पहुँचना और इसे कंसोल पर प्रिंट करना।
  8. मुख्य () फ़ंक्शन के शरीर का अंत।

एक सूचक को इंगित करता है

पॉइंटर एक वैरिएबल है जो एक एड्रेस रखता है। एक चर के पते को संग्रहीत करने के लिए एक पॉइंटर का उपयोग करने के अलावा, हम इसका उपयोग सरणी सेल के पते को संग्रहीत करने के लिए कर सकते हैं। किसी सरणी का नाम लगातार उसके पहले तत्व की ओर इशारा करता है। नीचे दिए गए घोषणा पर विचार करें:

int age[5];

आयु $ युग के लिए एक संकेतक है [0], उम्र नामक एक सरणी के पहले तत्व का पता। निम्नलिखित उदाहरण पर विचार करें:

#include using namespace std;int main(){int *john;int age[5] = { 19, 18, 21, 20, 17 };john = age;cout << john << "\n";cout << *john;}

आउटपुट:

ध्यान दें कि उपरोक्त आउटपुट का पहला मान आपके कंप्यूटर की मेमोरी में सरणी के पहले तत्व को दिए गए पते के आधार पर एक अलग मान लौटा सकता है।

यहाँ कोड का एक स्क्रीनशॉट है:

कोड स्पष्टीकरण:

  1. हमारे कोड में iostream हेडर फ़ाइल शामिल है। यह हमें कंसोल से पढ़ने और लिखने की अनुमति देगा।
  2. जिसमें स्टैड नेमस्पेस भी शामिल है ताकि बिना बुलाए अपनी कक्षाओं और कार्यों का उपयोग किया जा सके।
  3. मुख्य () फ़ंक्शन को कॉल करना जिसके अंदर कार्यक्रम का तर्क जोड़ा जाना चाहिए।
  4. मुख्य () फ़ंक्शन के शरीर की शुरुआत।
  5. * जॉन नामक पॉइंटर चर की घोषणा।
  6. 5 पूर्णांकों को संग्रहीत करने के लिए एक पूर्णांक सरणी की घोषणा की गई जिसका नाम आयु है। पूर्णांकों के मानों को भी आरंभीकृत किया गया है।
  7. सरणी आयु के पहले सूचकांक में संग्रहीत आइटम के पते का मान चर जॉन को असाइन करना।
  8. चर जॉन के मूल्य को प्रिंट करना, जो कि सरणी आयु के पहले सूचकांक में संग्रहीत आइटम का पता है।
  9. सरणी आयु में संग्रहीत पहला मान मुद्रित करना।
  10. मुख्य () फ़ंक्शन के शरीर का अंत।

सरणी नामों को निरंतर संकेत के रूप में उपयोग किया जा सकता है, और इसके विपरीत भी सच है। इसका मतलब है कि आप सरणी आयु के सूचकांक 3 में संग्रहीत मूल्य को * (आयु + 3) के साथ एक्सेस कर सकते हैं। उदाहरण के लिए:

#include using namespace std;int main() {// an array of 5 elements.int age[5] = { 19, 18, 21, 20, 17 };int *p;p = age;// output array valuescout << "Using pointer: " << endl;for (int x=0; x<5; x++) {cout << "*(p + " << x << ") : ";cout << *(p + x) << endl;}cout << "Using age as address: " << endl;for (int x = 0; x < 5; x++) {cout << "*(age + " << x << ") : ";cout << *(age + x) << endl;}return 0;}

आउटपुट:

यहाँ कोड का एक स्क्रीनशॉट है:

कोड स्पष्टीकरण:

  1. हमारे कोड में iostream हेडर फ़ाइल शामिल है। यह हमें कंसोल से पढ़ने और लिखने की अनुमति देगा।
  2. जिसमें स्टैड नेमस्पेस भी शामिल है ताकि बिना बुलाए अपनी कक्षाओं और कार्यों का उपयोग किया जा सके।
  3. मुख्य () फ़ंक्शन को कॉल करना और मुख्य () फ़ंक्शन के शरीर की शुरुआत।
  4. एक टिप्पणी। C ++ कंपाइलर इसे छोड़ देगा।
  5. 5 पूर्णांकों को संग्रहीत करने के लिए आयु नामक एक ऐलान की घोषणा।
  6. पूर्णांक सूचक बनाना p।
  7. सरणी आयु के पहले तत्व के पते का मान निर्दिष्ट करना।
  8. एक टिप्पणी। C ++ कंपाइलर इसे छोड़ देगा।
  9. कंसोल पर कुछ टेक्स्ट प्रिंट करें।
  10. लूप के लिए एक पूर्णांक x बनाएँ। {लूप के लिए शरीर की शुरुआत के निशान।
  11. कंसोल पर कुछ अन्य पाठ के साथ संयुक्त एक्स के मूल्यों को प्रिंट करें।
  12. कंसोल पर * (p + x) के मान प्रिंट करें।
  13. एक पाश के लिए शरीर का अंत।
  14. कंसोल पर कुछ टेक्स्ट प्रिंट करें।
  15. एक लूप के लिए एक वेरिएबल x बनाएं। {लूप के लिए शरीर की शुरुआत के निशान।
  16. कुछ अन्य पाठ के साथ 0 से 4 तक x के मूल्यों का प्रिंट आउट लें।
  17. * (आयु + x) के मूल्यों का प्रिंट आउट लें।
  18. लूप के लिए शरीर का अंत।
  19. यदि प्रोग्राम सफलतापूर्वक चलता है तो मान लौटाएं।
  20. मुख्य () फ़ंक्शन के शरीर का अंत।

एक ऐरे के मूल्यों तक पहुँचना

एक सरणी के तत्वों को उनके संबंधित अनुक्रमित का उपयोग करके एक्सेस किया जाता है। एक्सेस किए जाने वाले तत्व का इंडेक्स ऐरे नाम के तुरंत बाद स्क्वायर ब्रैकेट [] में जोड़ा जाता है। उदाहरण के लिए:

int john = age[2];

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

#includeusing namespace std;int main(){int age[5] = { 19, 18, 21, 20, 17 };int john = age[2];cout << "The age of John is:"<

आउटपुट:

यहाँ कोड का एक स्क्रीनशॉट है:

कोड स्पष्टीकरण:

  1. हमारे कोड में iostream हेडर फ़ाइल शामिल है। यह हमें कंसोल से पढ़ने और लिखने की अनुमति देगा।
  2. जिसमें स्टैड नेमस्पेस भी शामिल है ताकि बिना बुलाए अपनी कक्षाओं और कार्यों का उपयोग किया जा सके।
  3. मुख्य () फ़ंक्शन को कॉल करना जिसके भीतर कोड जोड़ा जाना चाहिए।
  4. मुख्य () फ़ंक्शन के एक निकाय की शुरुआत।
  5. 5 पूर्णांक तत्वों को संग्रहीत करने के लिए उम्र नाम की एक सरणी की घोषणा।
  6. सरणी आयु के अनुक्रमणिका 2 में संग्रहीत मान तक पहुँचने और जॉन नामक चर में इसके मूल्य को संग्रहीत करना।
  7. अन्य पाठ के साथ कंसोल पर वेरिएबल जॉन के मान को प्रिंट करना।

C ++ में एक ऐरे का लाभ

यहाँ, C ++ में Array का उपयोग करने के लाभ / लाभ हैं:

  • सरणी तत्वों को आसानी से पता लगाया जा सकता है।
  • सरणी डेटा में हेरफेर करना आसान है।
  • ऐरे तत्वों को बेतरतीब ढंग से एक्सेस किया जा सकता है।
  • कोड अनुकूलन की सुविधा देता है; इसलिए, हम कम कोड का उपयोग करके अधिक कार्य कर सकते हैं।
  • सरणी डेटा को सॉर्ट करना आसान है।

C ++ में एक सरणी का नुकसान

  • एक सरणी का एक निश्चित आकार होता है; इसलिए, हम आरंभीकरण के बाद इसमें नए तत्व नहीं जोड़ सकते।
  • आवश्यकता से अधिक मेमोरी आवंटित करने से व्यर्थ मेमोरी स्पेस हो जाता है, और मेमोरी का कम आवंटन एक समस्या पैदा कर सकता है।
  • किसी सरणी में संग्रहीत किए जाने वाले तत्वों की संख्या पहले से ज्ञात होनी चाहिए।

सारांश

  • एक सरणी एक डेटा संरचना है जो समान डेटा प्रकार के तत्वों को संग्रहीत करती है।
  • सरणी तत्वों को क्रमिक रूप से संग्रहीत किया जाता है।
  • सरणी तत्वों को उनके संबंधित अनुक्रमित का उपयोग करके चिह्नित किया जाता है। पहला तत्व इंडेक्स 0 पर है, जबकि अंतिम तत्व इंडेक्स एन -1 पर है, जहां एरे तत्वों की कुल संख्या है।
  • एक सरणी की घोषणा में सरणी तत्वों के डेटा प्रकारों को परिभाषित करने के साथ-साथ सरणी में संग्रहीत किए जाने वाले तत्वों की संख्या शामिल है।
  • एक-आयामी सरणी तत्वों को क्रमिक रूप से संग्रहीत करती है।
  • एक दो-आयामी सरणी पंक्तियों और स्तंभों में तत्वों को संग्रहीत करती है।
  • एक तीन आयामी सरणी सरणियों का एक सरणी है।
  • तत्वों को उनके अनुक्रमित का उपयोग करके एक सरणी में जोड़ा जा सकता है।
  • ऐरे तत्वों को उनके अनुक्रमित का उपयोग करके एक्सेस किया जाता है।
  • एक बहु-आयामी सरणी में एक से अधिक आयाम होते हैं।
  • सरणी नाम इसके पहले तत्व को इंगित करता है।
  • Arrays का एक निश्चित आकार होता है, जिसका अर्थ है कि इसके प्रारंभ होने के बाद नए तत्वों को सरणी में नहीं जोड़ा जा सकता है।