"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > आप यह निर्धारित करने के लिए प्रकार लक्षणों का उपयोग कैसे कर सकते हैं कि कोई प्रकार एसटीएल कंटेनर है या वेक्टर?

आप यह निर्धारित करने के लिए प्रकार लक्षणों का उपयोग कैसे कर सकते हैं कि कोई प्रकार एसटीएल कंटेनर है या वेक्टर?

2024-12-22 को प्रकाशित
ब्राउज़ करें:456

How can you use type traits to determine if a type is an STL container or a vector?

प्रकार के लक्षणों के साथ एसटीएल संरचनाओं का पता लगाना: is_container और is_vector के लिए एक गाइड

परिचय

प्रकार लक्षण संकलन समय पर प्रकारों की पूछताछ के लिए एक शक्तिशाली तंत्र प्रदान करते हैं। यह प्रोग्रामर्स को अत्यधिक अनुकूलित और लचीला कोड लिखने का अधिकार देता है। एक सामान्य उपयोग का मामला एसटीएल संरचनाओं का पता लगाना है, जैसे कि वैक्टर, सेट और मानचित्र। बूस्ट से Enable_if मेटाफंक्शन का एक विशेष संस्करण। यह हमें std::vector के प्रकार की समानता के आधार पर हमारे is_vector प्रकार विशेषता को सशर्त रूप से विशेषज्ञ बनाने की अनुमति देता है। ]टेम्पलेट संरचना_वेक्टर है { स्थिर बूल स्थिरांक मान = गलत; }; टेम्पलेट struct is_vector> >::type> { स्थिर बूल स्थिरांक मान = सत्य; };

एसटीएल कंटेनरों का पता लगाने के लिए एक वैकल्पिक दृष्टिकोण

SFINAE (प्रतिस्थापन विफलता एक त्रुटि नहीं है) तकनीक एसटीएल जैसे कंटेनरों का पता लगाने के लिए एक वैकल्पिक दृष्टिकोण प्रदान करती है। यहां एक कार्यान्वयन है:

template संरचना is_container : std::false_type {}; टेम्पलेट संरचना is_container_helper {}; टेम्प्लेट संरचना is_container().आकार()), decltype(std::declval().begin()), डिक्लटाइप(std::declval().end()), decltype(std::declval().cbegin()), decltype(std::declval().cend()) >, खालीपन > > : सार्वजनिक std::true_type {};
template
struct is_vector {
  static bool const value = false;
};

template
struct is_vector> >::type> {
  static bool const value = true;
};

निष्कर्ष

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

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3