Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ . में उपयोगकर्ता परिभाषित अक्षर


यहाँ हम C++ में उपयोक्ता-परिभाषित लिटरल की अवधारणा देखेंगे। C++ संस्करण 11 से, उपयोगकर्ता परिभाषित साहित्य (UDL) को C++ में जोड़ा जाता है। C++ विभिन्न प्रकार के अंतर्निर्मित प्रकारों के लिए शाब्दिक भी प्रदान करता है लेकिन ये सीमित हैं।

बिल्ट-इन लिटरल -

  • 31 (पूर्णांक)

  • 3.5 (डबल)

  • 4.2F (फ्लोट)

  • 'पी' (चरित्र)

  • 31ULL (अहस्ताक्षरित लॉन्ग लॉन्ग)

  • 0xD0 (अहस्ताक्षरित हेक्साडेसिमल पूर्णांक)

  • "पीक्यू" (स्ट्रिंग)

बिल्ट-इन लिटरल के अलावा, कभी-कभी हमें यूजर डिफाइन्ड लिटरल की जरूरत होती है। इसके पीछे कुछ कारण हैं। आइए कुछ उदाहरणों के साथ देखते हैं -

मान लीजिए कि हम एक भार चर को परिभाषित करना चाहते हैं, लेकिन हम इकाइयों को निर्दिष्ट नहीं कर सकते हैं, जैसे कि यदि हम निम्नानुसार परिभाषित करते हैं -

long double Weight = 3.5;

हमें इकाई के बारे में कोई जानकारी नहीं है, (पाउंड?, किलोग्राम? ग्राम?) लेकिन यूडीएल का उपयोग करके हम इकाइयों को मूल्यों के साथ जोड़ सकते हैं। कुछ लाभ हैं, यह अधिक पठनीय कोड बनाता है और संकलन समय के दौरान रूपांतरण का भी समर्थन करता है

weight = 5.6kg;
ratio = 5.6kg/2.1lb;

उपरोक्त अनुपात ज्ञात करने के लिए उन्हें समान इकाइयों में बदलना आवश्यक है। लेकिन यूडीएल हमें यूनिट अनुवाद लागत को दूर करने में मदद करते हैं। इस मामले में, हम उपयोगकर्ता-परिभाषित प्रकार के मामले में उपयोगकर्ता-परिभाषित शाब्दिक और अंतर्निहित प्रकारों के मामले में शाब्दिक के नए रूप को परिभाषित कर सकते हैं। UDL ज्यादा कोडिंग समय बचाने में सक्षम नहीं हो सकता है, लेकिन तेजी से निष्पादन के कारण अधिक से अधिक गणनाओं को संकलन-समय में स्थानांतरित किया जा सकता है।

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

#include<iostream>
#include<iomanip>
using namespace std;
unsigned long long int operator"" _kb( unsigned long long int x ) {
   return x*1024;
}
unsigned long long int operator"" _b( unsigned long long int x ) {
   return x;
}
unsigned long long int operator"" _mb( unsigned long long int x ) {
   return x * 1024 * 1024;
}
int main() {
   unsigned long long int size = 24_kb;
   cout << "Size:" << size << endl;
   cout << "Few more MB:" << ( size + 2_mb ) << endl;
   cout << "Size Div:" <<( 10_kb / 2_kb ) << endl;
   cout << "1KB = " <<( 8_b * 128_b ) << endl;
   return 0;
}

आउटपुट

Size:24576
Few more MB:2121728
Size Div:5
1KB = 1024

  1. C++ में बूलियन लिटरल क्या हैं?

    बूलियन अक्षर शाब्दिक हैं जिनका अर्थ या तो सत्य है या गलत है। सी ++ में केवल दो बूलियन अक्षर हैं:सत्य और झूठा। ये अक्षर बूल प्रकार के हैं। आप उनका उपयोग - . के रूप में कर सकते हैं उदाहरण #include<iostream> using namespace std; int main() {    bool my_bool = true;    if(my_b

  1. C++ में टोकन बनाम पहचानकर्ता बनाम कीवर्ड

    एक टोकन C++ प्रोग्राम का सबसे छोटा तत्व है जो कंपाइलर के लिए सार्थक है। सी ++ पार्सर इस प्रकार के टोकन को पहचानता है:पहचानकर्ता, कीवर्ड, अक्षर, ऑपरेटर, विराम चिह्न, और अन्य विभाजक। इन टोकन की एक धारा एक अनुवाद इकाई बनाती है। टोकन आमतौर पर सफेद स्थान से अलग होते हैं। पार्सर कीवर्ड्स, आइडेंटिफायर्स, ल

  1. C++ टोकन से आप क्या समझते हैं?

    एक टोकन सी ++ प्रोग्राम का सबसे छोटा तत्व है जो संकलक के लिए सार्थक है। सी ++ पार्सर इस प्रकार के टोकन को पहचानता है:पहचानकर्ता, कीवर्ड, अक्षर, ऑपरेटर, विराम चिह्न, और अन्य विभाजक। इन टोकन की एक धारा एक अनुवाद इकाई बनाती है। टोकन आमतौर पर सफेद स्थान से अलग होते हैं। पार्सर कीवर्ड्स, आइडेंटिफ़ायर्स,