Std :: वेक्टर <bool> कैसे आया?


15

आज, लगभग सभी सी ++ डेवलपर्स सहमत हैं कि std::vector<bool>यह एक गलती थी क्योंकि यह धोखा देने वाला कंटेनर नहीं है, और इसके उपयोग के मामले बड़े पैमाने पर std::bitsetवैसे भी हैं।

यह मानक में मतदान कैसे हुआ? क्या यह उस समय विवादास्पद था? मुख्य सहायक तर्क क्या थे?


पहले नहीं std::vectorलिखा था std::bitset?
dan04


3
इसके अलावा, हर्ब सटर std::vector<bool> यहां और यहां के बारे में बड़े पैमाने पर लिखते हैं । मुझे लगता है कि यदि आप उनके लेखन में थोड़ा और खोदते हैं, तो आपको अपनी आवश्यक जानकारी मिल जाएगी।
रॉबर्ट हार्वे

जवाबों:


10

हर्ब सटर से उद्धृत संदर्भ का उपयोग करते हुए:

वेक्टर विशेषज्ञता जानबूझकर मानक में डाल दी गई थी कि एक अनुमानित कंटेनर कैसे लिखें। एक "अनुमानित कंटेनर" एक कंटेनर है, जिसकी वस्तुएं आपको सीधे नहीं मिलती हैं; एक निहित वस्तु के लिए आपको संकेत या संदर्भ देने के बजाय, एक अनुमानित कंटेनर आपको प्रॉक्सी ऑब्जेक्ट देता है जिसका उपयोग अप्रत्यक्ष रूप से किसी ऑब्जेक्ट को एक्सेस या हेरफेर करने के लिए किया जा सकता है। अनुमानित संग्रह उन मामलों में उपयोगी हो सकता है, जहां संग्रह के भीतर वस्तुओं को हमेशा विश्वसनीय तरीके से सीधे एक्सेस नहीं किया जा सकता है, जैसे कि वे स्मृति में थे, उदाहरण के लिए एक डिस्क-आधारित संग्रह के साथ जो स्वचालित रूप से कवर के तहत स्मृति के अंदर और बाहर खुद के टुकड़ों को पेज करता है। जरूरत है। तो यह विचार करना था कि इस तरह के अनुमानित संग्रह को "कंटेनर" की आवश्यकताओं को पूरा करने के लिए कैसे किया जाए?

और हां, उस समय चर्चा थी।

  1. सभी गोर विवरणों के लिए, DejaNews पर सर्फ करें और सब्जेक्ट = "वेक्टर और बूल" और फोरम = " c ++ " के लिए एक पावर सर्च करें । चर्चा जनवरी / फरवरी 1997 में हुई थी। आप लोगों से हाल की चर्चाएँ पूछेंगे कि वेक्टर विशेषज्ञता को कैसे बंद किया जाए; मेरी सलाह के लिए इस लेख का अंत देखें।

बाकी इतिहास है। और मुझे ऐसे अच्छे लिंक के साथ एक अनुत्तरित प्रश्न को देखने से नफरत है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.