-
C++ में नॉन-वर्चुअल फंक्शन के अंदर वर्चुअल फंक्शन कॉल करने पर क्या होता है?
इस खंड में हम C++ में वर्चुअल क्लासेस के बारे में दिलचस्प तथ्यों पर चर्चा करेंगे। हम दो केस पहले देखेंगे, फिर हम तथ्य का विश्लेषण करेंगे। सबसे पहले किसी भी वर्चुअल फंक्शन का उपयोग किए बिना प्रोग्राम निष्पादित करें। फिर नॉन-वर्चुअल फंक्शन के अंदर किसी वर्चुअल फंक्शन का उपयोग करके प्रोग्राम निष्पादित
-
C++ में डेराइव्ड क्लास मेथड को अधिक प्रतिबंधित एक्सेस देने पर क्या होता है?
इस खंड में हम C++ में डेराइव्ड क्लास मेथड्स के प्रतिबंधित एक्सेस के बारे में दिलचस्प तथ्यों पर चर्चा करेंगे। हम कुछ उदाहरण देखेंगे और आउटपुट का विश्लेषण करके C++ में डेराइव्ड क्लास मेथड्स के उपयोग के प्रतिबंधों के बारे में अधिक जानेंगे। उदाहरण (C++) बेहतर समझ के लिए निम्न कार्यान्वयन देखें: #include
-
C++ में ब्लॉक के अंदर बनाए गए ऑब्जेक्ट कहां स्टोर होते हैं?
इस खंड में हम चर्चा करेंगे कि जब C++ प्रोग्राम कंपाइल होता है तो वेरिएबल्स और ऑब्जेक्ट्स मेमोरी में कहां स्टोर होते हैं। जैसा कि हम जानते हैं, मेमोरी के दो भाग होते हैं जिनमें एक ऑब्जेक्ट स्टोर किया जा सकता है: स्टैक - मेमोरी के ब्लॉक के अंदर घोषित सभी सदस्य, स्टैक सेक्शन में स्टोर होते हैं। मुख्य
-
C++ में खाली क्लास का आकार शून्य क्यों नहीं होता?
मान लीजिए हमारे पास C++ में एक खाली क्लास है। अब आइए जांचें कि क्या इसका आकार 0 है या नहीं। वास्तव में, मानक 0 आकार के ऑब्जेक्ट्स (या क्लासेस) की अनुमति नहीं देता, क्योंकि इससे दो अलग-अलग ऑब्जेक्ट्स का एक ही मेमोरी लोकेशन होना संभव हो जाएगा। यही कारण है कि यहां तक कि एक खाली क्लास का आकार कम से कम 1
-
C++ क्लास कैसे बनाएं जिसके ऑब्जेक्ट्स केवल डायनामिकली एलोकेटेड हो सकें
इस समस्या में हम देखेंगे कि कैसे एक ऐसी क्लास बनाई जाए जिसके लिए हम केवल डायनामिक मेमोरी एलोकेशन के माध्यम से ऑब्जेक्ट्स बना सकें, डायरेक्ट ऑब्जेक्ट निर्माण की अनुमति न हो। विचार सरल है। हमें उस क्लास के लिए प्राइवेट डिस्ट्रक्टर बनाना होगा। जब डिस्ट्रक्टर प्राइवेट होता है, तो कंपाइलर नॉन-डायनामिकली
-
C++ में STL फंक्शंस द्वारा लौटाए गए पॉइंटर्स का उपयोग करके इंडेक्स निकालना
इस खंड में हम देखेंगे कि C++ में STL द्वारा लौटाए गए पॉइंटर्स का उपयोग करके इंडेक्स कैसे निकाला जाए। जैसा कि हम जानते हैं, C++ में कई बिल्ट-इन फंक्शंस मेमोरी में स्थिति के पॉइंटर्स लौटाते हैं जो वांछित संख्या का पता प्रदान करते हैं, लेकिन इसका कंटेनर में लौटाए गए मान के वास्तविक इंडेक्स से कोई संबंध
-
C++ में गाउसियन फिल्टर जनरेशन
जैसा कि हम जानते हैं, गाउसियन फिल्टरिंग इमेज प्रोसेसिंग के क्षेत्र में बहुत उपयोगी है। इसका उपयोग इमेज के शोर को कम करने के लिए किया जाता है। इस खंड में हम देखेंगे कि 2D गाउसियन कर्नेल कैसे जनरेट करें। 2D कर्नेल जनरेट करने के लिए गाउसियन वितरण निम्नानुसार है। $$G(x,y)= \frac{1}{2\Pi\:\sigma^{2}}e^{\
-
C++ में टेस्ट केस जनरेट करना (generate() और generate_n())
इस खंड में हम देखेंगे कि C++ STL फंक्शन का उपयोग करके टेस्ट केस कैसे जनरेट कर सकते हैं। कभी-कभी ऐरे प्रोग्राम के लिए टेस्ट केस जनरेट करना बहुत जटिल और अकुशल प्रक्रिया हो सकती है। C++ टेस्ट केस जनरेट करने के लिए दो विधियां प्रदान करता है। ये विधियां निम्नलिखित हैं: generate() विधि C++ फंक्शन std::alg
-
C++ में कॉम्प्लेक्स नंबर्स का उपयोग करके ज्यामिति
इस खंड में, हम देखेंगे कि C++ में STL से कॉम्प्लेक्स क्लास का उपयोग करके पॉइंट क्लास कैसे बनाई जाती है। और उन्हें ज्यामिति से संबंधित कुछ समस्याओं पर लागू करते हैं। कॉम्प्लेक्स नंबर STL के कॉम्प्लेक्स क्लास (#include <complex>) के अंदर मौजूद होता है। पॉइंट क्लास को परिभाषित करना कॉम्प्लेक्स को
-
C++ STL में मैप (या अनऑर्डर्ड_मैप) को पार करना
यहां हम C++ में मैप कंटेनर और इसके उपयोग को देखेंगे। मैप को सहयोगी कंटेनर (associative containers) के रूप में परिभाषित किया जाता है जो तत्वों को हैश-मैप्ड फैशन में संग्रहीत करते हैं। प्रत्येक तत्व एक कुंजी और मान से जुड़ा होता है। कोई दो मैप्ड मान समान कुंजी नहीं रख सकते। ये C++ में मैप कंटेनर में म
-
C++ में यूनिफॉर्म इनिशियलाइज़ेशन
यहां हम C++ में यूनिफॉर्म इनिशियलाइज़ेशन (समान प्रारंभिकरण) पर चर्चा करेंगे। यह C++11 संस्करण से समर्थित है। यूनिफॉर्म इनिशियलाइज़ेशन एक ऐसी सुविधा है जो प्रिमिटिव प्रकार से लेकर एग्रीगेट तक, वेरिएबल्स और ऑब्जेक्ट्स को इनिशियलाइज़ करने के लिए एक सुसंगत सिंटैक्स की अनुमति देती है। दूसरे शब्दों में, य
-
C++ में उपयोगकर्ता-परिभाषित लिटरल्स
यहां हम C++ में उपयोगकर्ता-परिभाषित लिटरल्स (User Defined Literals - UDL) की अवधारणा देखेंगे। C++11 संस्करण से, उपयोगकर्ता-परिभाषित लिटरल्स C++ में जोड़े गए हैं। C++ बिल्ट-इन प्रकारों के लिए लिटरल्स प्रदान करता है लेकिन ये सीमित हैं। बिल्ट-इन लिटरल्स: 31 (पूर्णांक) 3.5 (डबल) 4.2F (फ्लोट) p (कैरेक्ट
-
2D मैट्रिक्स से लिंक्ड लिस्ट बनाएं C++ में (पुनरावृत्त दृष्टिकोण)
मान लीजिए हमारे पास एक मैट्रिक्स है, हमें इसे पुनरावृत्त (iterative) दृष्टिकोण का उपयोग करके 2D लिंक्ड लिस्ट में बदलना है। इस लिस्ट में राइट (दायां) और डाउन (नीचे) पॉइंटर होंगे। उदाहरण के लिए, यदि इनपुट इस तरह का है: 10 20 30 40 50 60 70 80 90 तो आउटपुट होगा: इसे हल करने के लिए, हम निम्न
-
2D मैट्रिक्स से लिंक्ड लिस्ट बनाएं C++ में (पुनरावर्ती दृष्टिकोण)
मान लीजिए हमारे पास एक मैट्रिक्स है, हमें इसे पुनरावर्ती दृष्टिकोण का उपयोग करके 2D लिंक्ड लिस्ट में बदलना है। इस लिस्ट में राइट (दायां) और डाउन (नीचे) पॉइंटर होंगे। उदाहरण के लिए, यदि इनपुट इस तरह का है: 10 20 30 40 50 60 70 80 90 तो आउटपुट होगा: इसे हल करने के लिए, हम निम्न चरणों का पाल
-
संतुलित BST में दिए गए योग वाली जोड़ी खोजें C++ में
मान लीजिए हमारे पास एक संतुलित बाइनरी सर्च ट्री (BST) और एक लक्ष्य योग है, हमें एक ऐसी विधि परिभाषित करनी है जो जांचे कि क्या इसमें कोई ऐसी जोड़ी मौजूद है जिसका योग लक्ष्य योग के बराबर हो। ध्यान रखें कि बाइनरी सर्च ट्री अपरिवर्तनीय (immutable) है। उदाहरण के लिए, यदि इनपुट इस तरह का है: तो आउटपुट हो
-
C++ में मर्ज सॉर्ट के सबसे खराब स्थिति का कारण बनने वाले क्रमचय को ढूंढना
मान लीजिए हमारे पास तत्वों का एक सेट है; हमें यह ढूंढना है कि इन तत्वों का कौन सा क्रमचय मर्ज सॉर्ट की सबसे खराब स्थिति का कारण बनेगा? जैसा कि हम जानते हैं कि एसिम्प्टोटिकली, मर्ज सॉर्ट हमेशा O(n log n) समय लेता है, लेकिन कुछ मामलों में अधिक तुलनाओं की आवश्यकता होती है और अधिक समय लगता है। यहां हमें
-
C++ में व्यक्तिगत रूप से क्रमबद्ध करके पूर्ण क्रमबद्ध सरणी बनाने वाले अधिकतम पार्टीशन की संख्या
हमें 0 और N-1 की रेंज में स्थित तत्वों वाली N संख्याओं की एक सरणी दी गई है। तत्व असॉर्टेड हैं। लक्ष्य सरणी के उन अधिकतम पार्टीशन की संख्या ढूंढना है जिन्हें व्यक्तिगत रूप से क्रमबद्ध किया जा सकता है और फिर संयोजित करके पूरी N लंबाई की क्रमबद्ध सरणी बनाई जा सकती है। प्रत्येक पार्टीशन को इस तरह चुना ज
-
C++ में दो संख्याओं की विभाज्यता से जुड़े लाभ को अधिकतम करना
हमें पांच पूर्णांक N, A, B, X और Y दिए गए हैं। लक्ष्य रेंज [1 से N] में संख्याओं की जांच करके लाभ को अधिकतम करना है, यदि कोई संख्या A से विभाज्य है, तो लाभ X से बढ़ता है। कोई संख्या B से विभाज्य है तो लाभ Y से बढ़ता है। एक विशेष संख्या के लिए रेंज में लाभ केवल एक बार जोड़ा जा सकता है। आइए उदाहरणों
-
C++ में सरणी में अभाज्य संख्याओं की गिनती
हमें संख्याओं की एक सरणी दी गई है। लक्ष्य उस सरणी में अभाज्य संख्याओं की गिनती ढूंढना है। एक अभाज्य संख्या वह है जो 1 और स्वयं संख्या से विभाज्य होती है। इसके केवल दो गुणनखंड होते हैं। हम जांचेंगे कि संख्या अभाज्य है या नहीं, पहले तत्व से शुरू करके अंतिम तक और अब तक मिली अभाज्य संख्याओं की गिनती बढ़
-
C++ में दी गई रेंज में सबसे छोटे तत्वों की संख्या गिनना
=1 और R<=N। हम इसे रेंज L और R में स्थित तत्वों को पार करके और सबसे छोटा ढूंढकर करेंगे। फिर से, रेंज L और R के तत्वों को पार करते हैं और काउंट बढ़ाते हैं यदि कोई तत्व चरण 1 में गणना किए गए सबसे छोटे के बराबर है। आइए उदाहरणों से समझते हैं। इनपुट - arr[]= { 1,2,3,0,3,2,0,1 }, N=8, L=2, R=5 आउटपुट -