एसटीएल :: वेक्टर के साथ:को अक्षम करने से सीमा ग के लिए जाँच ++ वैक्टर
vector<int> v(1);
v[0]=1; // No bounds checking
v.at(0)=1; // Bounds checking
सभी at()
[]
के रूप में फिर से लिखने के बिना सीमा जाँच निष्क्रिय करने के लिए कोई तरीका है? मैं जीएनयू मानक सी ++ लाइब्रेरी का उपयोग कर रहा हूं।
संपादित: मैं ऐसा क्षेत्र है जहां मैं एक टोंटी संदिग्ध में []
करने के लिए at()
बदल गया है, और यह काफी गणना समय कम कर दिया। हालांकि, चूंकि मैं कोड विकसित करने और इसके साथ प्रयोग चलाने के बीच पुनरावृत्ति करता हूं, इसलिए मैं विकास के दौरान सीमाओं की जांच को सक्षम करना चाहता हूं और जब मैं वास्तविक प्रयोगों को चलाता हूं तो इसे अक्षम कर देता हूं। मुझे लगता है कि एंड्रयू की सलाह सबसे अच्छा समाधान है।
क्या अंत करने के लिए? एक बेहतर तरीका हो सकता है। –
आपको '(]' के साथ 'at()' को प्रतिस्थापित करने के लिए नियमित अभिव्यक्ति का उपयोग करने में सक्षम होना चाहिए, और यह सत्यापित करने में सहायता के लिए ब्रेकपॉइंट सेट करें कि सभी उदाहरण प्रतिस्थापित किए गए हैं। ऐसा नहीं है कि एक फिसलने से आपदा हो जाएगी, चिंता सिर्फ प्रदर्शन है, है ना? – Potatoswatter
आप ऐसा क्यों करना चाहते हैं? यदि आपका उत्तर प्रदर्शन है, तो कृपया मुझे बताएं कि आपने प्रोफाइल किया है और पाया है कि यह आपकी बाधा है। यदि ऐसा है, तो हाँ, अपने() s को '[] 'के रूप में पुनः लिखें। अन्यथा, इसे होने दो। –