मुझे अपने कस्टम यादृच्छिक अभिगम संग्रह वर्ग के लिए एक पुनरावर्तक की आवश्यकता है। मैं इटरेटर का उपयोग std::sort
के साथ करना चाहता हूं। चूंकि मैं एक सीमित समय बजट के साथ सी ++ न्यूबी हूं, मैं खुद को पूरी चीज लिखने से बचना चाहता हूं।बूस्ट की गिनती_इटरेटर क्यों है?
मेरा इटरेटर मूल रूप से बस एक साधारण size_t
है। इसलिए, मैंने सोचा कि boost::counting_iterator
एक अच्छा मैच हो सकता है। एक बार जब मैंने Incrementable
पूरा कर लिया था तो मुझे एहसास हुआ कि counting_iterator
इसके संदर्भ प्रकार को const Incrementable&
के रूप में परिभाषित करता है।
हालांकि मैं अभी भी बहुत सी ++ से उलझन में हूं, मुझे विश्वास है कि यह मुझे std::sort
के साथ इटरेटर का उपयोग करने से रोक देगा क्योंकि कस्ट इटेटर का उपयोग संग्रह तत्वों को स्वैप करने के लिए नहीं किया जा सकता है।
यहां प्रश्न है: boost::counting_iterator
const
के रूप में इसके संदर्भ प्रकार को परिभाषित क्यों करता है और शायद अधिक महत्वपूर्ण है, इसके बजाय मुझे इसका क्या उपयोग करना चाहिए?
'boost :: counting_iterator' कंटेनर तक पहुंचने के लिए उपयोग योग्य नहीं है। यह प्राकृतिक संख्या '0, 1, 2, ... के अनुक्रम" पहुंचने "के लिए बनाया गया है। यही कारण है कि इसका संदर्भ प्रकार 'const' है: आप' 2' बनने के लिए '2' हैक नहीं कर सकते हैं। –
"मुझे अपने कस्टम यादृच्छिक अभिगम संग्रह वर्ग के लिए एक पुनरावर्तक की आवश्यकता है।" शायद "मैं एक नौसिखिया हूँ" के साथ संगत नहीं है। क्या मैं पूछ सकता हूं कि आपको कस्टम संग्रह कक्षा क्यों चाहिए? –
"मेरा इटेटरेटर मूल रूप से बस एक साधारण 'size_t' है" मुझे समझ में नहीं आता है।'size_t' इटेटरेटर अवधारणा – KABoissonneault