Possible Duplicate:
C++ STL set update is tedious: I can't change an element in placestd :: सेट इटरेटर स्वचालित रूप से स्थिरांक
मैं simplicities के लिए समस्या निकाला जाता है और बदला नाम और इसलिए है।
असल में मैं एक वर्ग का दृष्टांत और मैं इसे एक std :: सेट में शेयर, पर बाद में मैं इतना है कि मैं अपने मूल्यों को जांच करने और उन्हें संशोधित कर सकते हैं वर्ग के लिए एक संदर्भ करना चाहते हैं ...
सरलीकृत कोड:
MyClass tmpClass;
std::set<MyClass > setMyClass;
setMyClass.insert(tmpClass);
std::set<MyClass >::iterator iter;
iter=setMyClass.begin();
MyClass &tmpClass2=*iter;
और त्रुटि:
error C2440: 'initializing' : cannot convert from 'const MyClass' to 'MyClass &'
(मैं त्रुटि संदेश के कुछ हिस्सों को हटा दिया, "MVB :: भागो ::" यह बहुत स्पष्ट करने के लिए ऊपर।)
अगर मैं जोड़ने के एक पूर्ववर्ती कोड की अंतिम पंक्ति के लिए 'स्थिरांक' तो सब कुछ अच्छी तरह से काम करता है लेकिन फिर मैं मूल्य नहीं बदल सकते ...
इस सामान्य व्यवहार है और मैं करने के लिए, कहते हैं, को दूर किया है डेटा, मूल्यों को बदलें और इसे दोबारा दोबारा डालें?
मुझे लगता है कि सेट के सॉर्टिंग के साथ इसका कुछ संबंध है लेकिन मैं सॉर्टिंग के लिए उपयोग किए जाने वाले चर को स्पर्श नहीं करूंगा।
के रूप में परिवर्तित करने का इरादा घोषित कर सकता है आप यह कर सकते हैं, लेकिन यह बुरा अभ्यास है। –