C++ मानक पुस्तकालय: पूर्ण अवलोकन और उदाहरण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

C++ मानक पुस्तकालय: पूर्ण अवलोकन

\n\n

C++ मानक पुस्तकालय (C++ Standard Library) कक्षाओं, फ़ंक्शनों, मैक्रोज़ और टेम्पलेट्स का एक शक्तिशाली सेट है जो किसी भी C++ कंपाइलर के साथ आता है। यह डेटा कंटेनरों के साथ काम करने से लेकर नेटवर्क इंटरैक्शन और मल्टीथ्रेडिंग तक अधिकांश सामान्य कार्यों के लिए तैयार समाधान प्रदान करता है। इस लेख में, हम पुस्तकालय के मुख्य घटकों पर चर्चा करेंगे, कोड उदाहरण दिखाएंगे और समझाएंगे कि इसकी क्षमताओं का प्रभावी ढंग से उपयोग कैसे करें।

\n\n

मानक पुस्तकालय के मुख्य घटक

\n\n

मानक पुस्तकालय कई बड़े वर्गों में विभाजित है:

\n\n
    \n
  • STL (Standard Template Library) — कंटेनर, इटरेटर, एल्गोरिदम और फंक्शनल ऑब्जेक्ट्स।
  • \n
  • इनपुट/आउटपुट — स्ट्रीम (iostream), फ़ाइल स्ट्रीम (fstream), स्ट्रिंग स्ट्रीम (sstream)।
  • \n
  • स्ट्रिंग्स — क्लास std::string और std::string_view।
  • \n
  • संख्यात्मक संचालन — गणितीय फ़ंक्शन (cmath), रैंडम संख्याएँ (random), कॉम्प्लेक्स संख्याएँ (complex)।
  • \n
  • मल्टीथ्रेडिंग — थ्रेड (thread), म्यूटेक्स, कंडीशनल वेरिएबल्स।
  • \n
  • उपयोगिताएँ — std::optional, std::variant, std::any, स्मार्ट पॉइंटर्स (shared_ptr, unique_ptr)।
  • \n
\n\n

STL कंटेनर

\n\n

कंटेनर टेम्पलेट क्लासेस हैं जो ऑब्जेक्ट्स के संग्रह को संग्रहीत करने के लिए डिज़ाइन किए गए हैं। वे अनुक्रमिक और साहचर्य में विभाजित हैं।

\n\n

अनुक्रमिक कंटेनर

\n\n
    \n
  • std::vector — डायनामिक ऐरे। इंडेक्स द्वारा तेज़ पहुँच, बीच में धीमी इंसर्शन।
  • \n
  • std::deque — डबल-एंडेड क्यू। दोनों सिरों से तेज़ इंसर्शन/डिलीट।
  • \n
  • std::list — डबली लिंक्ड लिस्ट। कहीं भी तेज़ इंसर्शन/डिलीट, लेकिन इंडेक्स द्वारा धीमी पहुँच।
  • \n
\n\n
#include <iostream>\n#include <vector>\n\nint main() {\n    std::vector<int> numbers = {10, 20, 30, 40};\n    numbers.push_back(50); // अंत में जोड़ना\n    for (int n : numbers) {\n        std::cout << n << " ";\n    }\n    return 0;\n}
\n\n

साहचर्य कंटेनर

\n\n
    \n
  • std::set — अद्वितीय तत्वों का सेट (सॉर्टेड)।
  • \n
  • std::map — "कुंजी-मान" शब्दकोश (कुंजी द्वारा सॉर्टेड)।
  • \n
  • std::unordered_set / std::unordered_map — हैश टेबल्स (सॉर्टेड नहीं, लेकिन तेज़)।
  • \n
\n\n
#include <iostream>\n#include <map>\n\nint main() {\n    std::map<std::string, int> ages;\n    ages["Alice"] = 30;\n    ages["Bob"] = 25;\n    for (const auto& [name, age] : ages) {\n        std::cout << name << ": " << age << std::endl;\n    }\n    return 0;\n}
\n\n

एल्गोरिदम

\n\n

लाइब्रेरी <algorithm> में अनुक्रमों के साथ काम करने के लिए 100 से अधिक एल्गोरिदम शामिल हैं: सॉर्टिंग, सर्चिंग, कॉपी करना, ट्रांसफॉर्मेशन आदि। सभी एल्गोरिदम इटरेटर के माध्यम से काम करते हैं, जो उन्हें सार्वभौमिक बनाता है।

\n\n
#include <iostream>\n#include <algorithm>\n#include <vector>\n\nint main() {\n    std::vector<int> v = {5, 2, 8, 1, 9};\n    std::sort(v.begin(), v.end()); // आरोही क्रम में सॉर्ट करना\n    auto it = std::find(v.begin(), v.end(), 8);\n    if (it != v.end()) {\n        std::cout << "मिला: " << *it << std::endl;\n    }\n    return 0;\n}
\n\n

स्ट्रिंग्स के साथ काम करना

\n\n

क्लास std::string टेक्स्ट के साथ काम करने के लिए सुविधाजनक विधियाँ प्रदान करता है: खोज, प्रतिस्थापन, संयोजन, तुलना। C++17 में स्ट्रिंग्स के गैर-स्वामित्व वाले दृश्य के लिए std::string_view जोड़ा गया है।

\n\n
#include                    

अनुशंसाएँ