2017-09-28 5 views
8

मैंने को निकोलई एम जोसुटिस द्वारा लिखित सी ++ पुस्तक में पढ़ा है। वह अपनी पुस्तक द सी ++ स्टैंडर्ड लाइब्रेरी में लिखते हैं, अध्याय 17.4:"std :: valarray" का उपयोग करना एक अच्छा विचार कहां है?

वालराय वर्गों को बहुत अच्छी तरह से डिजाइन नहीं किया गया था। वास्तव में, ने यह निर्धारित करने की कोशिश की कि अंतिम विनिर्देशन काम करता है या नहीं। यह हुआ क्योंकि इन वर्गों के लिए किसी को भी "जिम्मेदार" महसूस नहीं हुआ। लोग जिन्होंने सी ++ मानक लाइब्रेरी में वैलारे पेश किए थे, मानक समाप्त होने से बहुत पहले समिति छोड़ दी गई थी। नतीजतन, वालरिए का शायद ही कभी उपयोग किया जाता है।

तो, std::valarray का उपयोग करना एक अच्छा विचार कहां है?

+1

पर अधिक जानकारी मैं कहना चाहता हूँ मिल सकता है "हाँ", लेकिन यह है कि एक राय है, जैसे निकोलाई क्या लिखा है (उसकी शायद अधिक वजन किया जाता है को छोड़कर)। मुझे यकीन है कि आप * कहीं * के लिए एक वैध उपयोग केस पा सकते हैं, लेकिन ज्यादातर मामलों में बस बेहतर विकल्प मौजूद हैं। –

+2

^--- मैं सहमत हूं, लेकिन यह इस पोस्ट को कम राय-आधारित नहीं बनाता है। शायद आपको refrase करना चाहिए? – StoryTeller

+0

मुझे लगता है कि सवाल कुछ हद तक उत्तर दिया जा सकता है अगर उसने उन स्थानों के लिए कहा जहां इसका उपयोग करना एक अच्छा विचार है। हालांकि, मैं आसानी से किसी को नहीं ढूंढ सकता। –

उत्तर

3

संकलक को तेजी से निष्पादन योग्य बनाने की अनुमति देने के लिए वैलेरिए बनाए जाते हैं। हालांकि, इन अनुकूलन को अन्य माध्यमों से प्राप्त किया जा सकता है और वाल्हे का शायद ही कभी उपयोग किया जाता है।

std :: valarray और सहायक कक्षाएं इस प्रकार इन कक्षाओं पर कार्रवाई कीवर्ड के प्रभाव सी प्रोग्रामिंग भाषा में प्रतिबंधित करने के लिए इसी तरह के अनुकूलन की अनुमति देता है, अलियासिंग के कुछ रूपों से मुक्त होने की परिभाषित कर रहे हैं। इसके अलावा, वैलेर्रे तर्क लेने वाले फ़ंक्शंस और ऑपरेटर को प्रॉक्सी ऑब्जेक्ट्स को वापस करने की अनुमति दी जाती है ताकि संकलक को v1 = v2 + v3 जैसे अभिव्यक्ति को अनुकूलित किया जा सके; एक लूप के रूप में जो v1 निष्पादित करता है [i] = v2 [i] + v3 [i]; किसी भी अस्थायी या एकाधिक पास से परहेज। .....

दूसरे शब्दों में, valarrays स्थानों में इस्तेमाल किया जा रहा है जब वहाँ मूल्यों जो ज्यादातर सरल भाव को पास किया जाता के एक बहुत हैं होती हैं।

केवल शायद ही कभी वैलारे को अनुकूलित किया जाता है, उदाहरण के लिए इंटेल समांतर स्टूडियो।

आप cppreference

संबंधित मुद्दे