C++ मानक पुस्तकालय: पूर्ण अवलोकन
C++ मानक पुस्तकालय (जिसे अक्सर STL — Standard Template Library कहा जाता है) टेम्पलेट क्लासेस और फंक्शन्स का एक शक्तिशाली सेट है, जो किसी भी C++ कंपाइलर का हिस्सा है। यह प्रोग्रामिंग के सबसे सामान्य कार्यों के लिए तैयार, परीक्षित और अनुकूलित समाधान प्रदान करता है: डायनामिक ऐरे और स्ट्रिंग्स के साथ काम करने से लेकर सॉर्टिंग और सर्चिंग के जटिल एल्गोरिदम तक। मानक पुस्तकालय का उपयोग विकास को काफी तेज करता है, कोड की विश्वसनीयता बढ़ाता है और इसके रखरखाव को आसान बनाता है।
इस लेख में, हम C++ मानक पुस्तकालय के मुख्य घटकों: कंटेनर, एल्गोरिदम, इटरेटर, स्ट्रिंग्स, इनपुट/आउटपुट स्ट्रीम और स्मार्ट पॉइंटर्स पर विस्तार से चर्चा करेंगे। प्रत्येक अनुभाग व्यावहारिक कोड उदाहरणों के साथ होगा।
कंटेनर (Containers)
कंटेनर ऐसी क्लासेस हैं जो डेटा के सेट को संग्रहीत और व्यवस्थित करने के लिए डिज़ाइन की गई हैं। वे तीन मुख्य श्रेणियों में विभाजित हैं:
- अनुक्रमिक कंटेनर: तत्वों को रैखिक क्रम में संग्रहीत करते हैं। मुख्य प्रतिनिधि:
std::vector(डायनामिक ऐरे),std::list(दोगुनी लिंक्ड लिस्ट),std::deque(दो-तरफा क्यू)। - साहचर्य कंटेनर: तत्वों को क्रमबद्ध रूप में संग्रहीत करते हैं, त्वरित खोज सुनिश्चित करते हैं। उदाहरण:
std::set(सेट),std::map(की-वैल्यू डिक्शनरी)। - अक्रमित साहचर्य कंटेनर (C++11): और भी तेज़ पहुँच के लिए हैश टेबल का उपयोग करते हैं। उदाहरण:
std::unordered_set,std::unordered_map।
std::vector और std::map के साथ काम करने का उदाहरण:
#include <iostream>#include <vector>#include <map>#include <string>
int main() { // अनुक्रमिक कंटेनर std::vector<int> numbers = {10, 20, 30, 40}; numbers.push_back(50); // अंत में जोड़ना
std::cout << "वेक्टर: "; for (int n : numbers) { std::cout << n << " "; } std::cout << std::endl;
// साहचर्य कंटेनर std::map<std::string, int> ages; ages["Alice"] = 30; ages["Bob"] = 25;
std::cout << "एलिस की उम्र: " << ages["Alice"] << std::endl; return 0;}इटरेटर (Iterators)
इटरेटर कंटेनर के तत्वों तक पहुँचने का एक सामान्यीकृत तरीका है। वे "स्मार्ट पॉइंटर्स" की तरह काम करते हैं और किसी भी कंटेनर को एक समान तरीके से ट्रैवर्स करने की अनुमति देते हैं। इटरेटर के मुख्य प्रकार: begin() (पहले तत्व पर पॉइंटर) और end() (अंतिम तत्व के बाद वाले तत्व पर पॉइंटर)।
std::list को ट्रैवर्स करने के लिए इटरेटर का उपयोग करने का उदाहरण:
#include <iostream>#include <list>
int main() { std::list<double> prices = {19.99, 29.99, 9.99};
// इटरेटर का उपयोग for (auto it = prices.begin(); it != prices.end(); ++it) { std::cout << *it << " "; } std::cout << std::endl; return 0;}एल्गोरिदम (Algorithms)
<algorithm> लाइब्रेरी में डेटा अनुक्रमों के साथ काम करने के लिए दर्जनों तैयार फंक्शन शामिल हैं: सॉर्टिंग, सर्चिंग, कॉपी करना, रूपांतरण और भी बहुत कुछ। एल्गोरिदम इटरेटर के साथ काम करते हैं, जो उन्हें सार्वभौमिक बनाता है।
लोकप्रिय एल्गोरिदम:
std::sort— रेंज को सॉर्ट करना।std::find— मान की पहली उपस्थिति खोजना।std::copy— तत्वों की प्रतिलिपि बनाना।std::accumulate— तत्वों का योग (से<numeric>)।
सॉर्टिंग और सर्चिंग का उदाहरण:
#include <iostream>#include <vector>#include <algorithm>
int main() { std::vector<int> data = {5, 2, 8, 1, 9 पुस्तकालय में भी
PHP में Excel के साथ काम करना: PhpSpreadsheet, PhpOffice लाइब्रेरीज़ और XLSX जनरेशन
TypeScript में Rate Limiting: लाइब्रेरी, रणनीतियाँ और उदाहरण
Swift कार्य अनुसूचक: iOS/macOS के लिए GCD, OperationQueue और Combine