मुख्य सामग्री पर जाएं
मॉड्यूल 5 · पाठ 1 का 2पाठ्यक्रम में 11/18~12 min
मॉड्यूल पाठ (1/2)

सरणियाँ और वेक्टर

C++ में, डेटा के संग्रह का प्रबंधन मुख्य रूप से दो उपकरणों के माध्यम से किया जाता है: पुरानी शैली की सारणी (सी-शैली की सारणी) और वेक्टर (std::vector)। कुशल कोड लिखने के लिए स्थैतिक और गतिशील मेमोरी के बीच अंतर को समझना मौलिक है।


1. स्थैतिक सारणी (सी-शैली सारणी)

एक सारणी सन्निहित स्मृति स्थानों में संग्रहीत एक ही प्रकार के तत्वों का एक संग्रह है। स्थैतिक सरणी का आकार संकलन समय पर ज्ञात होना चाहिए और बाद में बदला नहीं जा सकता:

C++
int grades[5] = {18, 22, 25, 28, 30}; // Array of 5 integers

मुख्य विशेषताएं:

  • निश्चित आकार: आप रनटाइम पर तत्व जोड़ या हटा नहीं सकते।
  • स्टैक आवंटन: आवंटित करने और हटाने के लिए बहुत तेज़।
  • एक्सेस: इंडेक्स ऑपरेटर [] के माध्यम से किया गया (उदाहरण के लिए, पहले तत्व के लिए grades[0])।

2. गतिशील वेक्टर (std::vector)

C++ मानक टेम्पलेट लाइब्रेरी (STL) std::vector क्लास प्रदान करती है, जो एक गतिशील सरणी का प्रतिनिधित्व करती है। इसका उपयोग करने के लिए, आपको <vector> हेडर शामिल करना होगा:

C++
#include <vector>

std::vector<int> numbers; // Creates an empty vector of integers

सामान्य संचालन:

  • अंत में जोड़ें: .push_back(value) विधि वेक्टर के अंत में एक तत्व सम्मिलित करती है, यदि आवश्यक हो तो स्वचालित रूप से मेमोरी को पुनः आवंटित करती है।
  • आकार: .size() विधि वेक्टर में वर्तमान में तत्वों की संख्या लौटाती है।
  • सुरक्षित पहुंच: [] ऑपरेटर के अलावा, आप .at(index) विधि (जैसे, numbers.at(0)) का उपयोग कर सकते हैं, जो सूचकांक सीमा से बाहर होने पर एक अपवाद फेंकता है।
C++
std::vector<int> scores = {90, 85};
scores.push_back(95); // scores now contains {90, 85, 95}
std::cout << scores.size(); // Prints 3

खुद कोशिश करना

व्यायाम#cpp.m5.l1.e1
प्रयास: 0लोड हो रहा है...

संख्याओं द्वारा नामित पूर्णांकों का एक std::vector घोषित करें। .push_back() विधि का उपयोग करके इसके अंदर मान 10, 20 और 30 जोड़ें, फिर number.size() का उपयोग करके इसका आकार प्रिंट करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

वेक्टर को `std::vector<int> number;`के साथ घोषित करें,`.push_back(value)`के साथ तीन नंबर डालें, और इसे`std::cout << number.size();` के साथ प्रिंट करें।

3 प्रयासों के बाद समाधान उपलब्ध है

व्यायाम#cpp.m5.l1.e2
प्रयास: 0लोड हो रहा है...

मुख्य रूप से, 5 तत्वों की एक ग्रेड सरणी परिभाषित की गई है। सरणी में सभी तत्वों के योग की गणना करने के लिए एक लूप लिखें, इसे वेरिएबल योग में संग्रहीत करें, और std::cout का उपयोग करके इसे प्रिंट करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

`for (int i = 0; i < 5; ++i)`लूप का उपयोग करें और लूप के अंदर प्रत्येक तत्व को`sum += ग्रेड[i];` के साथ जोड़ें।

3 प्रयासों के बाद समाधान उपलब्ध है

Quiz#cpp.m5.l1.q1
तैयार

C++ में std::vector के अंत में किसी तत्व को जोड़ने की सही विधि क्या है?

C++
std::vector<int> numbers; // come aggiungere il valore 50?
उत्तर विकल्प