2012-01-06 13 views
5

जिज्ञासा से बाहर सरल प्रश्न।जो अधिक कुशल/साफ है: मौजूदा स्ट्रिंगस्ट्रीम को साफ़ करना या नया बनाना बनाना?

कक्षा पर कई विधियों को स्ट्रिंगस्ट्रीम, या विशेष रूप से एक ओस्ट्रिंगस्ट्रीम का उपयोग करने की आवश्यकता है।

1) आप इसका इस्तेमाल करने की जरूरत है यह यानी प्रत्येक विधि में हर बार का उपयोग कर msg.str("")

2) एक नया stringstream चर बनाएं स्थानीय स्तर से पहले सिर्फ यह स्पष्ट एक वर्ग के सदस्य के रूप में एक stringstream चर और उसके बाद है ।

दक्षता और स्वच्छता के मामले में इसे लागू करने का सबसे अच्छा तरीका कौन सा है?

मेरा हंच विकल्प 1 है, लेकिन यह सुनिश्चित नहीं है कि प्रत्येक कॉल के साथ प्रारंभिक निर्माण str() से बदतर हो जाएगा?

पीएस मैं Initializing.. which one is more efficient? और Which is quicker/more efficient? पढ़ा है, मेरे अगले कदम मुझे रूपरेखा और एक छोटे से परीक्षण एप्लिकेशन लेखन में देखने के लिए होगा, लेकिन मैं हो सकता है जल्दी :-)

+0

पूछने में समस्या यह है कि उत्तर धर्म और लोककथाओं से भरे होंगे और अधिकतर आपकी स्थिति पर लागू नहीं होंगे। प्रोफाइलिंग को प्राथमिकता दी जानी चाहिए। – PlasmaHH

+0

@PlasmaHH: प्रोफाइलिंग केवल प्रदर्शन दिखाती है ... यदि सही हो तो। पूछने से कुछ दृष्टिकोणों (उदाहरण के लिए "साफ" पहलू से संबंधित) में अन्य त्रुटियों को भी इंगित किया जा सकता है। उस ने कहा, मैं केवल सहमत हूं कि व्यक्तिपरकता एक जोखिम है। –

+0

और प्रोफाइलिंग के साथ समस्या यह है कि आप जिस वातावरण में चल रहे हैं उसके लिए सवाल का जवाब है (यदि आप इसे पूरा नहीं करते हैं - प्रोफाइलिंग सही करने के लिए मुश्किल हो सकती है), और आप स्थिरता, पोर्टेबिलिटी या शुद्धता के बारे में नहीं सीखते जेम्स जैसे मुद्दों ने इंगित किया .... –

उत्तर

7

stringstream का प्रयोग न करें के साथ शुरू करने के लिए कहा था। istringstream या ostringstream का उपयोग करें, जो कभी भी उचित है। और केवल एक बार इसका इस्तेमाल करें; इसे साफ़ करना एक जटिल परिचालन है, जिसमें कोड की कई पंक्तियां, की आवश्यकता होती है और कुछ भूलना आसान है। msg.str("") से सभी राज्यों को संबोधित नहीं करता है। आपको स्वरूपण झंडे, त्रुटि स्थिति, अपवाद मास्क, और कोई अतिरिक्त स्वरूपण xalloc के माध्यम से अधिग्रहित चर में जानकारी सेट को रीसेट करने की भी आवश्यकता है।

+0

ग्रेट, इसके लिए धन्यवाद –

संबंधित मुद्दे