-
C++14 में जनरलाइज्ड लैम्ब्डा एक्सप्रेशन्स
C++11 में लैम्ब्डा पेश किया गया था। लैम्ब्डा मूल रूप से कोड का एक हिस्सा होता है जिसे अन्य फंक्शन कॉल स्टेटमेंट्स के अंदर नेस्ट किया जा सकता है। ऑटो कीवर्ड के साथ लैम्ब्डा एक्सप्रेशन्स को मिलाकर, उन्हें बाद में उपयोग किया जा सकता है। C++14 में, ये लैम्ब्डा एक्सप्रेशन्स बेहतर हुए हैं। यहां हमें जनर
-
C में सेल्फ-डिस्ट्रक्टिंग कोड: निष्पादन के बाद खुद को मिटाएं
यहां हम देखेंगे कि C में सेल्फ-डिस्ट्रक्टिंग कोड कैसे बनाया जाता है। सेल्फ-डिस्ट्रक्टिंग कोड मूल रूप से कोड को निष्पादित करता है, और फिर निष्पादन के बाद एक्जीक्यूटेबल फाइल को हटा देता है। यह कार्य बहुत सरल है। हमें एक्जीक्यूटेबल फाइल का नाम प्राप्त करना होगा ताकि उसे हटाया जा सके। हम कमांड लाइन आर
-
C भाषा में POSIX सेमाफोर्स का उपयोग कैसे करें
सेमाफोर प्रोसेस या थ्रेड सिंक्रोनाइजेशन की एक अवधारणा है। यहां हम देखेंगे कि वास्तविक प्रोग्राम्स में सेमाफोर्स का उपयोग कैसे किया जाता है। लिनक्स सिस्टम में, हमें POSIX सेमाफोर लाइब्रेरी मिलती है। इसका उपयोग करने के लिए, हमें semaphore.h लाइब्रेरी इन्क्लूड करनी होगी। कोड को निम्नलिखित विकल्पों का
-
C में खुद की हेडर फाइल कैसे बनाएं
यहां हम देखेंगे कि C का उपयोग करके अपनी खुद की हेडर फाइल कैसे बनाई जाती है। एक हेडर फाइल बनाने के लिए, हमें एक फाइल बनानी होती है जिसका एक्सटेंशन (*.h) होना चाहिए। उस फाइल में कोई main() फंक्शन नहीं होता। उस फाइल में हम कुछ वेरिएबल्स, कुछ फंक्शन्स आदि रख सकते हैं। उस हेडर फाइल का उपयोग करने के लिए
-
C/C++ में क्लाइंट-सर्वर मॉडल का उपयोग करके स्ट्रिंग रिवर्स करना
यहां हम एक ऐसा सिस्टम बनाएंगे जहां एक क्लाइंट और एक सर्वर होगा। क्लाइंट सर्वर को एक स्ट्रिंग भेजेगा, सर्वर उस स्ट्रिंग को रिवर्स करेगा और वापस क्लाइंट को भेज देगा। इसके लिए हम सॉकेट प्रोग्रामिंग की अवधारणा का उपयोग करेंगे। क्लाइंट-सर्वर कनेक्शन स्थापित करने के लिए हमें एक पोर्ट बनाना होगा। पोर्ट न
-
C++ में Stringstream: स्ट्रिंग प्रोसेसिंग के लिए शक्तिशाली टूल
C++ में stringstream एक ऐसा क्लास है जो स्ट्रिंग ऑब्जेक्ट को स्ट्रीम की तरह ट्रीट करने की सुविधा देता है। इसका उपयोग करके हम किसी स्ट्रिंग से ठीक उसी तरह डेटा पढ़ सकते हैं जैसे हम cin से पढ़ते हैं। यह <sstream> हेडर फाइल में परिभाषित होता है। Stringstream के मुख्य मेथड्स clear(): स्ट्रीम को
-
C++ में बाइनरी कोड में स्ट्रिंग छिपाने का सबसे अच्छा तरीका
यहां हम देखेंगे कि कुछ स्ट्रिंग को कुछ बाइनरी कोड में कैसे छिपाया जाए (यहां बाइनरी कोड हेक्साडेसिमल संख्या में दर्शाया गया है)। दृष्टिकोण बहुत सरल है। हम स्ट्रिंग स्ट्रीम का उपयोग करके दशमलव संख्या को हेक्साडेसिमल संख्या में परिवर्तित कर सकते हैं। अब स्ट्रिंग से, हम प्रत्येक वर्ण को पढ़ेंगे, और उसक
-
C/C++ में नल-टर्मिनेटेड स्ट्रिंग क्या है?
C में स्ट्रिंग्स मूल रूप से वर्णों की सरणी होती हैं। C++ में std::string उस सरणी की एक उन्नति है। पारंपरिक वर्ण सरणी के साथ कुछ अतिरिक्त विशेषताएं हैं। नल-टर्मिनेटेड स्ट्रिंग्स मूल रूप से वर्णों का एक क्रम है, और अंतिम तत्व एक नल वर्ण है (जिसे \0 द्वारा दर्शाया जाता है)। जब हम डबल कोट्स (...) का उप
-
C++ में std::string को ट्रिम (trim) करने का सबसे अच्छा तरीका क्या है?
यहां हम देखेंगे कि C++ में स्ट्रिंग्स को कैसे ट्रिम किया जाए। स्ट्रिंग को ट्रिम करने का मतलब स्ट्रिंग के बाएं और दाएं हिस्से से व्हाइटस्पेस को हटाना है। C++ स्ट्रिंग को ट्रिम करने के लिए, हम बूस्ट स्ट्रिंग लाइब्रेरी का उपयोग करेंगे। उस लाइब्रेरी में, trim_left() और trim_right() नामक दो अलग-अलग मेथड
-
C/C++ में float और double तुलना का सबसे प्रभावी तरीका क्या है?
यहां हम देखेंगे कि C या C++ का उपयोग करके दो फ्लोटिंग पॉइंट डेटा या दो डबल डेटा की तुलना कैसे की जाए। फ्लोटिंग पॉइंट / डबल तुलना पूर्णांक तुलना के समान नहीं है। दो फ्लोटिंग पॉइंट या डबल मानों की तुलना करने के लिए, हमें तुलना में सटीकता (precision) को ध्यान में रखना होगा। उदाहरण के लिए, यदि दो संख्य
-
C++ में const int*, const int * const, और int const * में क्या अंतर है?
यहां हम पूर्णांक पॉइंटर्स, पूर्णांक स्थिरांक और पूर्णांक स्थिरांक पॉइंटर्स के आधार पर वेरिएबल घोषणा के कुछ अलग प्रकार देखेंगे। उन्हें निर्धारित करने के लिए हम क्लॉकवाइज/स्पाइरल नियम का उपयोग करेंगे। शर्तों पर चर्चा करके, हम नियमों को भी समझ सकते हैं। const int *. यह कंपाइलर को बताने के लिए उपयोग कि
-
C++ में extern "C" का प्रभाव क्या है?
extern C कीवर्ड का उपयोग C++ में फ़ंक्शन नाम को C लिंकेज देने के लिए किया जाता है। इस मामले में कंपाइलर फ़ंक्शन को मैंगल (mangle) नहीं करता। आइए पहले देखें कि C++ में मैंगलिंग क्या है, फिर हम extern C कीवर्ड के बारे में चर्चा कर सकते हैं। C++ में हम फ़ंक्शन ओवरलोडिंग फीचर का उपयोग कर सकते हैं। इस फ
-
C++ में कॉपी इनिशियलाइज़ेशन और डायरेक्ट इनिशियलाइज़ेशन में क्या अंतर है?
कॉपी इनिशियलाइज़ेशन कॉपी कंस्ट्रक्टर की अवधारणा का उपयोग करके किया जा सकता है। जैसा कि हम जानते हैं कि कंस्ट्रक्टर्स का उपयोग ऑब्जेक्ट्स को इनिशियलाइज़ करने के लिए किया जाता है। हम किसी अन्य ऑब्जेक्ट की कॉपी बनाने के लिए अपना कॉपी कंस्ट्रक्टर बना सकते हैं, या दूसरे शब्दों में, वर्तमान ऑब्जेक्ट को क
-
C++ में फंक्शन/मेथड के लिए 'inline' कीवर्ड कब लिखना चाहिए?
C++ में, inline कीवर्ड का उपयोग विभिन्न स्थानों पर किया जाता है। इंलाइन वेरिएबल्स, या इंलाइन नेमस्पेस बनाने के लिए, साथ ही इंलाइन मेथड्स या फंक्शन्स बनाने के लिए। C++ इंलाइन फंक्शन एक शक्तिशाली कॉन्सेप्ट है जो आमतौर पर क्लासेस के साथ उपयोग किया जाता है। यदि कोई फंक्शन इंलाइन है, तो कंपाइलर उस फंक्
-
C++ में बिग-एंडियन और लिटिल-एंडियन मानों के बीच रूपांतरण कैसे करें?
यहां हम देखेंगे कि C++ में लिटिल एंडियन मान को बिग एंडियन में या बिग एंडियन मान को लिटिल एंडियन में कैसे परिवर्तित किया जाए। वास्तविक चर्चा से पहले, हम देखेंगे कि बिग एंडियन और लिटिल एंडियन क्या हैं? विभिन्न आर्किटेक्चर में, मल्टी-बाइट डेटा को दो अलग-अलग तरीकों से संग्रहीत किया जा सकता है। कभी-कभी
-
C++ में nullptr वास्तव में क्या है?
इस अनुभाग में हम C++ में nullptr देखेंगे। nullptr पॉइंटर लिटरल को दर्शाता है। यह std::nullptr_t प्रकार का एक prvalue है। इसमें nullptr से किसी भी पॉइंटर प्रकार के शून्य पॉइंटर मान और किसी भी पॉइंटर-टू-मेंबर प्रकार में निहित रूपांतरण गुण है। आइए इस अवधारणा को समझने के लिए एक प्रोग्राम देखें। उदाहरण
-
C++ में फ्लोटिंग पॉइंट तुलना
यहां हम देखेंगे कि C++ का उपयोग करके दो फ्लोटिंग पॉइंट डेटा की तुलना कैसे की जाए। फ्लोटिंग पॉइंट तुलना पूर्णांक तुलना के समान नहीं है। दो फ्लोटिंग पॉइंट मानों की तुलना करने के लिए, हमें तुलना में सटीकता (precision) को ध्यान में रखना होगा। उदाहरण के लिए, यदि दो संख्याएं 3.1428 और 3.1415 हैं, तो वे 0
-
Visual Studio 2012 में लाइब्रेरी कैसे शामिल करें
Visual Studio 2012 में लाइब्रेरीज़ जोड़ने के दो अलग-अलग तरीके हैं। पहला मैनुअल तरीका है। दूसरा कोड से लाइब्रेरीज़ जोड़ना है। विधि 1: मैनुअल तरीका (IDE के माध्यम से) कुछ लाइब्रेरी जोड़ने के लिए, इन पांच चरणों का पालन करें: आवश्यक #include स्टेटमेंट्स जोड़ें उचित घोषणाओं के साथ। उदाहरण: #include l
-
G++ का उपयोग करके एकाधिक .cpp और .h फ़ाइलों को कंपाइल करना
file_name.h या file_name.cpp जैसी एकाधिक फ़ाइलों को एक साथ कंपाइल करने के लिए, हम फ़ाइलों को एक के बाद एक सूची की तरह उपयोग कर सकते हैं। सिंटैक्स इस प्रकार होगा: g++ abc.h xyz.cpp प्रोग्राम चलाने के लिए: ./a.out उदाहरण हेडर फ़ाइल: area.h // area.h #ifndef AREA_H #define AREA_H float area(flo
-
C++11 में थ्रेड कैसे समाप्त करें
यहां हम देखेंगे कि C++11 में थ्रेड्स को कैसे समाप्त किया जाए। C++11 में थ्रेड्स को समाप्त करने की कोई सीधी विधि नहीं है। std::future<void> का उपयोग थ्रेड को सिग्नल करने के लिए किया जा सकता है, और जब फ्यूचर में मान उपलब्ध हो तो इसे बाहर निकलना चाहिए। यदि हम थ्रेड को सिग्नल भेजना चाहते हैं लेक