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

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

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

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

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



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



इस लेख में, हम मानक पुस्तकालय के मुख्य घटकों, उनके उद्देश्यों का विस्तार से विश्लेषण करेंगे और उपयोग के व्यावहारिक उदाहरण प्रस्तुत करेंगे।



1. कंटेनर (Containers)



कंटेनर डेटा संरचनाएं हैं जो वस्तुओं के संग्रह को संग्रहीत करने के लिए डिज़ाइन की गई हैं। सभी कंटेनर टेम्पलेट क्लासेस हैं, जो किसी भी प्रकार के तत्वों को संग्रहीत करने की अनुमति देते हैं।



  • अनुक्रमिक कंटेनर (Sequential Containers): तत्वों को रैखिक क्रम में संग्रहीत करते हैं।
    • std::vector — डायनामिक ऐरे। इंडेक्स द्वारा तीव्र पहुंच, अंत में सम्मिलन/हटाना — O(1), बीच में — O(n)।
    • std::list — डबली लिंक्ड लिस्ट। किसी भी स्थान पर तीव्र सम्मिलन/हटाना, लेकिन इंडेक्स द्वारा सीधी पहुंच नहीं।
    • std::deque — डबल-एंडेड क्यू। शुरुआत और अंत दोनों में तीव्र सम्मिलन/हटाना।
    • std::array — निश्चित आकार का स्टैटिक ऐरे (C++11)।
  • एसोसिएटिव कंटेनर (Associative Containers): तत्वों को क्रमबद्ध क्रम में संग्रहीत करते हैं (आमतौर पर रेड-ब्लैक ट्री पर आधारित)।
    • std::set — अद्वितीय तत्वों का सेट।
    • std::map — "कुंजी-मान" जोड़ियों का शब्दकोश (एसोसिएटिव ऐरे)।
    • std::multiset / std::multimap — समान, लेकिन डुप्लिकेट की अनुमति देते हैं।
  • अनऑर्डर्ड एसोसिएटिव कंटेनर (C++11): हैश टेबल का उपयोग करते हैं।
    • std::unordered_set, std::unordered_map — औसतन O(1) में तीव्र पहुंच।
  • कंटेनर एडेप्टर (Container Adapters): किसी अन्य कंटेनर के आधार पर एक सीमित इंटरफ़ेस प्रदान करते हैं।
    • std::stack (LIFO), std::queue (FIFO), std::priority_queue (प्राथमिकता के साथ)।


std::vector के उपयोग का उदाहरण:

#include <iostream>#include <vector>

int main() { std::vector<int> numbers = {10, 20, 30, 40, 50}; numbers.push_back(60); // अंत में एक तत्व जोड़ें for (int n : numbers) { std::cout << n << " "; } // आउटपुट: 10 20 30 40 50 60 return 0;}


2. इटरेटर (Iterators)



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



  • इटरेटर की श्रेणियां: Input, Output, Forward, Bidirectional, Random Access।
  • begin() / end() — पहले और अंतिम+1 तत्व पर इटरेटर लौटाते हैं।
  • std::advance() — इटरेटर को N स्थान आगे बढ़ाता है।
  • std::distance() — दो इटरेटर के बीच की दूरी की गणना करता है।


इटरेटर के साथ उदाहरण:

#include <iostream>#include <vector>

int main() { std::vector<std::string> words = {"Hello", "World", "C++"}; for (auto it = words.begin(); it != words.end(); ++it) { std::cout << *it << " "; } // आउटपुट: Hello World C++ return 0;}


3. एल्गोरिदम (Algorithms)

अनुशंसाएँ