बूस्ट पुस्तकालयों का उपयोग करना सीखना कहां से शुरू करें?


16

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

मैं इसकी बहुत सराहना करूंगा यदि कोई व्यक्ति लगभग 3 से 5 सुविधाओं को सूचीबद्ध कर सकता है जो सामान्य रूप से बहुत उपयोगी हैं, हर दिन प्रोग्रामिंग और राज्य क्यों वे उपयोगी हैं। फिर मैं उन लोगों को सीखना शुरू कर सकता हूं और उनका उपयोग कर सकता हूं - यह कम से कम मुझे पुस्तकालय में एक पैर जमाने और इसे सीखने / लागू करने के लिए एक अनुकूल जगह देगा। :)

अग्रिम में धन्यवाद!


मैं इस संदर्भ में 'लाइब्रेरी में पैर जमाने' वाक्यांश को नहीं समझता। किताबों में क्या खराबी है? सामान्य विक्रेताओं के विषय में कुछ हैं, उन्हें आपकी टीमों के बुकशेल्फ़ पर होना चाहिए।
23

मैं प्रोग्रामिंग के लिए हर समय पढ़ता हूं - मेरे पास यह सब कुछ जानने के लिए एक पुस्तक या संदर्भ मार्गदर्शिका को वापस पढ़ने का समय नहीं है, जो इस समय है और चाहे वह इस उपयोगी अधिकार में है या नहीं। मैं इसे यहाँ और वहाँ उपयोग करना शुरू करूँगा और धीरे-धीरे काम करते हुए इसे उठा लूँगा, और मुझे वास्तव में उपयोगी बूस्ट घटकों के कुछ मुख्य उदाहरण चाहिए थे। उदाहरण के लिए, स्कॉट मेयर्स द्वारा इफेक्टिव C ++ शेयर्ड_प्ट्र नॉन स्टॉप (और बहुत कम) के बारे में बात करता है क्योंकि यह बहुत अच्छा है। और क्या असामान्य रूप से बढ़ावा देने में सहायक है?
जॉन हम्फ्रीज़ - w00te

मुझे व्यक्तिगत रूप से BOOST_FOREACH मैक्रोज़, प्रेक्षक / ग्राहक पैटर्न, नियमित अभिव्यक्ति, दिनांक / समय पार्सर (पहलू) पसंद हैं, लेकिन मैंने या तो कोड का उपयोग करके मौजूदा बढ़ावा को संशोधित करते हुए उन्हें सामना किया या डेडएमजी उल्लिखित। मैंने केवल हिमशैल के सिरे को खरोंच दिया है, जो बढ़ा हुआ है, लेकिन यह एसटीएल की स्वाभाविक निरंतरता की तरह लगा।
aquaherd

जवाबों:


8

यदि आप एक पूर्व TR1 संकलक का उपयोग कर रहे हैं तो स्मार्ट पॉइंटर्स

boost::shared_ptr
boost::weak_ptr
boost::scoped_ptr 

boost::scoped_array
boost::shared_array

यदि आपके कंपाइलर में पहले से ही स्मार्ट पॉइंटर्स हैं तो उनका उपयोग करें।
कारण स्पष्ट है C ++ बिना स्मार्ट पॉइंटर्स के मूल रूप से C ++ नहीं है

बूस्ट ptr_contaier लाइब्रेरी।

सभी एसटीएल कंटेनरों को विशेष रूप से पॉइंटर्स रखने के लिए फिर से लागू किया गया। न केवल कंटेनर पॉइंटर्स का स्वामित्व लेते हैं ताकि जब कंटेनर नष्ट हो जाए तो यह स्वचालित रूप से सभी पॉइंटर्स को नष्ट कर दे। लेकिन यह भी सामान्य वस्तु संदर्भ (नहीं संकेत) के रूप में तत्वों के लिए पहुँच प्रदान करता है, यह आवरण एल्गोरिदम के बिना मानक एल्गोरिदम में वस्तुओं का उपयोग करना आसान बनाता है।

बढ़ावा लाम्बा पुस्तकालयों। (नीचे टिप्पणी देखें)

एसटीएल फंक्शनलर्स और बाइंडर्स साधारण चीजों के लिए ठीक हैं। लेकिन बढ़ावा :: लैम्ब्डा ने यह अगला कदम उठाया और मानक एल्गोरिदम का उपयोग करते समय चीजों को बहुत सरल बनाता है।

बढ़ावा :: किसी भी और बढ़ावा :: संस्करण

जब आप वस्तुओं को उनके सटीक प्रकार को जानना चाहते हैं, तो उन्हें रखने की आवश्यकता नहीं है।

मल्टी इंडेक्स कंटेनर

कंटेनर जो तत्वों को एक्सेस करने के लिए कई अलग-अलग तरीकों की अनुमति देते हैं।
वे दिन आ गए जब आपके पास वस्तुओं का वेक्टर होता है और त्वरित खोज वेक्टर के लिए एक अलग नक्शा होता है। यह बॉयलरप्लेट पर कटौती करता है जिसे आपको कंटेनरों में तत्वों को सम्मिलित / हटाते समय दो कंटेनरों को बनाए रखने के लिए लिखना होगा।

बढ़ावा :: lexical_cast

वास्तविक जीवन में संभवतः सबसे कम उपयोगी है लेकिन इसके साथ खेलने के लिए बहुत मज़ा है :: lexical_cast। यह किसी वस्तु को / से एक स्ट्रिंग में परिवर्तित करता है (जब तक कि उस प्रकार का उपयुक्त << और >> ऑपरेटर परिभाषित हो)। डी-बगिंग में त्रुटि संदेशों को डंप करने के लिए बहुत उपयोगी है।


1
Boost.Phoenix ने आधिकारिक तौर पर Boost.Lambda को बदल दिया है, जिसे अब पदावनत माना जाता है। कृपया नए कोड के लिए पूर्व की बजाय पूर्व की अनुशंसा करें। : -]
ildjarn

16

बूस्ट एक ढांचा नहीं है, न ही एक पुस्तकालय। यह एक गुणवत्ता-नियंत्रित, सहकर्मी-समीक्षा पुस्तकालय संग्रह है। आप बूस्ट नहीं सीखते। पुस्तकालय व्यक्तिगत होते हैं- जब आपको किसी चीज़ की आवश्यकता होती है, तो आप यह देखने के लिए देखें कि क्या यह बूस्ट में है, यदि यह है, तो आप उस पुस्तकालय को सीखते हैं। बस। आप बढ़ावा देने पर समझ नहीं पा रहे हैं :: बढ़ावा देने पर समझ पाने से वैकल्पिक :: संस्करण।


4
आप कह सकते हैं कि बढ़ावा एक गुणवत्ता लेबल और एक वितरण सेट है।
Kलेम

1

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

उदाहरण: बढ़ावा देने के साथ एक धागा सुरक्षित सिंगलटन :: थ्रेड call_once।

उदाहरण: कुंजी की कॉन्फ़िगरेशन फ़ाइल पढ़ें: टोकन का उपयोग करके मान।

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