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

C++ में auto और decltype क्या हैं?


auto C++11 और बाद का एक कीवर्ड है जिसका उपयोग ऑटोमैटिक टाइप डिडक्शन के लिए किया जाता है। टाइप इन्फरेंस या डिडक्शन प्रोग्रामिंग भाषा में किसी एक्सप्रेशन के डेटा टाइप का स्वचालित पता लगाने को संदर्भित करता है। यह कुछ स्ट्रॉन्गली स्टैटिकली टाइप्ड भाषाओं में मौजूद एक विशेषता है। उदाहरण के लिए, आप एक वेक्टर पर पुनरावृति करने के लिए एक इटरेटर बनाना चाहते हैं, आप इसके लिए बस auto का उपयोग कर सकते हैं।

उदाहरण

#include<iostream>
#include<vector>
using namespace std;
int main() {
    vector<int> arr(10);
    for(auto it = arr.begin(); it != arr.end(); it++) {
        cin >> *it;
    }
    return 0;
}

उपरोक्त प्रोग्राम में, it स्वचालित रूप से std::vector<int>::iterator प्रकार प्राप्त करेगा।

decltype टाइप स्पेसिफायर किसी निर्दिष्ट एक्सप्रेशन का प्रकार देता है। Auto के विपरीत जो वेरिएबल को असाइन किए जा रहे मानों के आधार पर प्रकारों का अनुमान लगाता है, decltype इसमें पास किए गए एक्सप्रेशन से प्रकार का अनुमान लगाता है। Decltype द्वारा लौटाया गया मान सीधे दूसरे वेरिएबल को परिभाषित करने के लिए उपयोग किया जा सकता है। उदाहरण के लिए, उपरोक्त कोड को decltype का उपयोग करके निम्नानुसार लिखा जा सकता है –

उदाहरण

#include <iostream>
#include <vector>
using namespace std;
int main() {
    vector<int> arr(10);
    for (decltype(arr.begin()) it = arr.begin(); it != arr.end(); it++) {
        cin >> *it;
    }
    return 0;
}

ध्यान दें कि decltype द्वारा दर्शाया गया प्रकार auto द्वारा डिडक्ट किए गए प्रकार से भिन्न हो सकता है। आप C++ में टाइप डिडक्शन की इस 12-पृष्ठ की व्याख्या में इन सूक्ष्म अंतरों के बारे में अधिक पढ़ सकते हैं – thbecker.net।

  1. - C++ में साइन्ड और अनसाइन्ड कीवर्ड्स

    C++ में सभी नंबर टाइप्स या तो साइन वाले हो सकते हैं या नहीं। उदाहरण के लिए, आप एक int घोषित कर सकते हैं जो केवल पॉजिटिव इंटीजर्स को दर्शाता है। जब तक अन्यथा निर्दिष्ट न हो, सभी इंटीजर डेटा टाइप्स साइन्ड डेटा टाइप्स होते हैं, यानी उनके मान पॉजिटिव या नेगेटिव हो सकते हैं। अनसाइन्ड कीवर्ड का उपयोग बिना

  1. - C++ में टाइप स्पेसिफायर्स क्या हैं?

    जब आप C++ जैसी स्टैटिकली टाइप्ड भाषा में पहली बार कोई वेरिएबल घोषित करते हैं, तो आपको घोषित करना होगा कि वह वेरिएबल क्या धारण करेगा। int number = 42; उस उदाहरण में, int एक टाइप स्पेसिफायर है जो बताता है कि वेरिएबल number केवल इंटीजर नंबर्स धारण कर सकता है। डायनामिकली टाइप्ड भाषाओं जैसे रूबी या जावास

  1. - C++ में टाइप क्वालिफायर्स क्या हैं?

    एक टाइप क्वालिफायर एक कीवर्ड है जिसे एक टाइप पर लागू किया जाता है, जिसके परिणामस्वरूप एक क्वालिफाइड टाइप प्राप्त होता है। उदाहरण के लिए, const int एक क्वालिफाइड टाइप है जो एक स्थिर इंटीजर को दर्शाता है, जबकि int संगत अनक्वालिफाइड टाइप है, बस एक इंटीजर। टाइप क्वालिफायर्स टाइप सिस्टम के माध्यम से एक म