मॉड्यूल पाठ (1/2)
सरणियाँ और वेक्टर
C++ में, डेटा के संग्रह का प्रबंधन मुख्य रूप से दो उपकरणों के माध्यम से किया जाता है: पुरानी शैली की सारणी (सी-शैली की सारणी) और वेक्टर (std::vector)। कुशल कोड लिखने के लिए स्थैतिक और गतिशील मेमोरी के बीच अंतर को समझना मौलिक है।
1. स्थैतिक सारणी (सी-शैली सारणी)
एक सारणी सन्निहित स्मृति स्थानों में संग्रहीत एक ही प्रकार के तत्वों का एक संग्रह है। स्थैतिक सरणी का आकार संकलन समय पर ज्ञात होना चाहिए और बाद में बदला नहीं जा सकता:
int grades[5] = {18, 22, 25, 28, 30}; // Array of 5 integersमुख्य विशेषताएं:
- निश्चित आकार: आप रनटाइम पर तत्व जोड़ या हटा नहीं सकते।
- स्टैक आवंटन: आवंटित करने और हटाने के लिए बहुत तेज़।
- एक्सेस: इंडेक्स ऑपरेटर
[]के माध्यम से किया गया (उदाहरण के लिए, पहले तत्व के लिएgrades[0])।
2. गतिशील वेक्टर (std::vector)
C++ मानक टेम्पलेट लाइब्रेरी (STL) std::vector क्लास प्रदान करती है, जो एक गतिशील सरणी का प्रतिनिधित्व करती है। इसका उपयोग करने के लिए, आपको <vector> हेडर शामिल करना होगा:
#include <vector>
std::vector<int> numbers; // Creates an empty vector of integersसामान्य संचालन:
- अंत में जोड़ें:
.push_back(value)विधि वेक्टर के अंत में एक तत्व सम्मिलित करती है, यदि आवश्यक हो तो स्वचालित रूप से मेमोरी को पुनः आवंटित करती है। - आकार:
.size()विधि वेक्टर में वर्तमान में तत्वों की संख्या लौटाती है। - सुरक्षित पहुंच:
[]ऑपरेटर के अलावा, आप.at(index)विधि (जैसे,numbers.at(0)) का उपयोग कर सकते हैं, जो सूचकांक सीमा से बाहर होने पर एक अपवाद फेंकता है।
std::vector<int> scores = {90, 85};
scores.push_back(95); // scores now contains {90, 85, 95}
std::cout << scores.size(); // Prints 3खुद कोशिश करना
संख्याओं द्वारा नामित पूर्णांकों का एक std::vector घोषित करें। .push_back() विधि का उपयोग करके इसके अंदर मान 10, 20 और 30 जोड़ें, फिर number.size() का उपयोग करके इसका आकार प्रिंट करें।
संकेत दिखाएँ
वेक्टर को `std::vector<int> number;`के साथ घोषित करें,`.push_back(value)`के साथ तीन नंबर डालें, और इसे`std::cout << number.size();` के साथ प्रिंट करें।
3 प्रयासों के बाद समाधान उपलब्ध है
मुख्य रूप से, 5 तत्वों की एक ग्रेड सरणी परिभाषित की गई है। सरणी में सभी तत्वों के योग की गणना करने के लिए एक लूप लिखें, इसे वेरिएबल योग में संग्रहीत करें, और std::cout का उपयोग करके इसे प्रिंट करें।
संकेत दिखाएँ
`for (int i = 0; i < 5; ++i)`लूप का उपयोग करें और लूप के अंदर प्रत्येक तत्व को`sum += ग्रेड[i];` के साथ जोड़ें।
3 प्रयासों के बाद समाधान उपलब्ध है
C++ में std::vector के अंत में किसी तत्व को जोड़ने की सही विधि क्या है?
std::vector<int> numbers; // come aggiungere il valore 50?