सामग्री पर जाएं
मॉड्यूल 5

STL और एल्गोरिदम (STL & Algorithms)

Standard Template Library में महारत हासिल करें — कंटेनर, इटरेटर, एल्गोरिदम, रेंज और फ़ंक्शनल प्रोग्रामिंग।

कंटेनर (Containers)

  1. सीक्वेंस कंटेनर: vector, deque, list, array

    STL के सीक्वेंस कंटेनर — vector, deque, list, forward_list और array — को समझें। उनके परफ़ॉर्मेंस ट्रेड-ऑफ़, मेमोरी लेआउट और इटरेटर के अमान्य (invalidate) होने के नियम सीखें।

  2. एसोसिएटिव कंटेनर: map, set, unordered_map

    ऑर्डर्ड और अनऑर्डर्ड एसोसिएटिव कंटेनर के बारे में जानें — map, set और उनके multi- और unordered वेरिएंट। समझें कि ट्री और हैश टेबल में से कब कौन-सा चुनना है।

  3. कंटेनर एडेप्टर और विशेष कंटेनर

    stack, queue, priority_queue, और span, string_view तथा optional जैसे आधुनिक वोकैबुलरी टाइप के बारे में जानें। समझें कि एडेप्टर आपके कोड को कब सरल बनाते हैं।

इटरेटर और एल्गोरिदम (Iterators & Algorithms)

  1. इटरेटर: STL को जोड़ने वाली कड़ी

    इटरेटर की श्रेणियों को समझें, इनपुट इटरेटर से लेकर कंटिग्यूअस इटरेटर तक। इटरेटर अरिथमेटिक, begin/end परिपाटी, और इटरेटर कंटेनर को एल्गोरिदम से कैसे जोड़ते हैं, यह सीखें।

  2. STL एल्गोरिदम: <algorithm> की ताक़त

    सबसे महत्वपूर्ण STL एल्गोरिदम में महारत हासिल करें — सर्चिंग और सॉर्टिंग से लेकर ट्रांसफ़ॉर्म और एक्यूमुलेट करने तक। सीखें कि एल्गोरिदम इटरेटर के साथ मिलकर अभिव्यंजक और कुशल कोड कैसे बनाते हैं।

  3. लैम्ब्डा और फ़ंक्शनल प्रोग्रामिंग

    C++ लैम्ब्डा में महारत हासिल करें — कैप्चर लिस्ट, म्यूटेबल लैम्ब्डा, जेनेरिक लैम्ब्डा, और एल्गोरिदम प्रेडिकेट के रूप में उनका उपयोग। std::function, std::invoke और IIFE पैटर्न सीखें।

रेंज और व्यू (Ranges & Views, C++20)

  1. C++20 रेंज: एक नया पैराडाइम

    C++20 रेंज को जानें — STL एल्गोरिदम इंटरफ़ेस का एक आधुनिक पुनर्डिज़ाइन। रेंज कॉन्सेप्ट, रेंज-आधारित एल्गोरिदम, प्रोजेक्शन, और जोड़े जा सकने वाले (composable) डेटा ट्रांसफ़ॉर्मेशन के लिए पाइप ऑपरेटर सीखें।

  2. व्यू, लेज़ी इवैल्यूएशन और कम्पोज़िशन (Views)

    C++20 व्यू में महारत हासिल करें — हल्के, लेज़ी रेंज एडेप्टर जो पाइप ऑपरेटर के साथ जुड़ते हैं। filter, transform, take, drop, split, join, iota सीखें, और बीच के आवंटन के बिना शक्तिशाली डेटा पाइपलाइन बनाना सीखें।