क्या मैं इटरेटर के साथ सामान्य गणना कर सकता हूं, यानी बस एक संख्या जोड़कर इसे बढ़ाएं?क्या मैं सिर्फ एक संख्या जोड़कर एक इटरेटर बढ़ा सकता हूं?
उदाहरण के लिए, अगर मैं तत्व vec[3]
निकालना चाहते हैं, मैं सिर्फ यह कर सकते हैं:
std::vector<int> vec;
for(int i = 0; i < 5; ++i){
vec.push_back(i);
}
vec.erase(vec.begin() + 3); // removes vec[3] element
यह मेरे (छ ++) के लिए काम करता है, लेकिन मुझे यकीन है कि अगर यह गारंटी है नहीं कर रहा हूँ काम करने के लिए।
ओह, तो यह std :: सूची के लिए काम नहीं करेगा? – Frank
सही; कुछ दस्तावेज लिंक जोड़े गए हैं जो सूचीबद्ध करते हैं कि कौन से फ़ंक्शंस इस प्रकार के इटरेटर के लिए उपलब्ध होना चाहिए। –
नहीं, यह नहीं है। + ऑपरेटर का मतलब है "एक कदम में, इसे बहुत दूर कूदें" जो एक सूची इटरेटर नहीं कर सकता है। अग्रेषित गैर-यादृच्छिक-पहुंच इटरेटर्स (जैसे सूची इटरेटर) समर्थन केवल एक तत्व को अग्रिम करने के लिए वृद्धि (++) ऑपरेटर का समर्थन करता है। जैसा कि टोड ने कहा था, आप std :: अग्रिम का उपयोग कर सकते हैं, जो ++ ऑपरेटर को बार-बार आमंत्रित करता है, संक्षेप में गैर-यादृच्छिक पुनरावर्तक को कई चरणों से आगे बढ़ाने के विचार को व्यक्त करता है। –