मैं एक वेक्टरक्या मुझे इटरेटर या एक्सेस ऑपरेटर द्वारा वेक्टर को फिर से चालू करना चाहिए?
std::vector<int> MyVector;
MyVector.push_back(5);
MyVector.push_back(6);
MyVector.push_back(7);
मैं कैसे पाश के लिए एक में उपयोग करना चाहिए के रूप में घोषित किया गया है?
इसे एक पुनरावर्तक के साथ पुनरावृत्त करके?
for (std::vector<int>::iterator it=MyVector.begin(); it!=MyVector.end(); ++it)
{
std::cout << "Vector element (*it): " << *it << std::endl;
}
या इसके एक्सेस इटेटरेटर द्वारा?
for (std::vector<int>::size_type i=0; i<MyVector.size(); i++)
{
std::cout << "Vector element (i) : " << MyVector.at(i) << std::endl;
}
उदाहरणों में मैंने इंटरनेट पर पाया कि दोनों का उपयोग किया जाता है। क्या उनमें से एक सभी शर्तों के तहत दूसरे से बेहतर है? यदि नहीं, तो मुझे उनमें से एक को दूसरे पर कब प्राथमिकता दी जानी चाहिए?
निर्णय के साथ नहीं नाम * "इटरेटर" * मदद करता है? वैसे, मुझे आशा है कि आपको स्पष्ट रूप से समझ होगी कि 'std :: vector :: at' क्या करता है और आप इसे अपने कोड में क्यों उपयोग करते हैं। यदि 'std :: vector :: ऑपरेटर []' के बजाय 'std :: vector :: at' का उपयोग कर रहे हैं, तो इटरेटर शायद अधिक तेज़ होंगे (किसी भी अन्य फायदे को अनदेखा कर रहे हैं)। –