c++ - no match for operator= using a std::vector -
मेरे पास इस तरह घोषित वर्ग है:
वर्ग स्तर {निजी: std :: वेक्टर & LT; mapObject :: MapObject & gt; विशेषताएं; (...)};
और इसके सदस्य कार्यों में से मैं इस तरह से उस वेक्टर के माध्यम से पुनरावृत्ति करने की कोशिश करता हूं:
vector & lt; mapObject :: MapObject :: iterator; के लिए (यह = features.begin (); यह & lt; features.end (); यह ++) {/ * लूप कोड * /}
यह मुझे सीधा लगता है, लेकिन जी ++ मुझे यह बताता है त्रुटि:
src / level.cpp: 402: त्रुटि: 'ऑपरेटर =' के लिए कोई भी मैच नहीं = ((कॉन्स्ट यरल :: लेवल :: लेवल *) यह) -> यारल :: स्तर :: स्तर :: features.std :: vector & lt; _Tp, _Alloc> :: आरंभ करें [_Tp = yarl :: mapObject :: MapObject, _Alloc =
std :: allocator & lt; yarl :: mapObject :: के साथ MapObject & gt;] () '
/usr/include/c++/4.4/bits/stl_iterator.h:669: नोट: उम्मीदवार हैं: __ gnu_cxx :: ___ सामान्य_ईटरेटर & lt; yarl :: mapObject :: MapObject *,
std :: vector>> & amp; __ gnu_cxx :: __ normal_iterator & lt; yarl :: mapObject :: MapObject *,
std :: vector> & gt; :: ऑपरेटर = (const __gnu_cxx :: __ normal_iterator & lt; yarl :: mapObject :: MapObject * , `` Std :: vector & lt; yarl :: mapObject :: MapObject, std :: आबंटक & lt; yarl :: mapObject :: MapObject & gt; & gt; & gt; & amp;)
कोई भी ऐसा क्यों हो रहा है?
मुझे लगता था कि इस त्रुटि का यह हिस्सा आपकी समस्या का वर्णन करता है :
(const yarl :: level :: level *) यह
सदस्य कार्य है जिसमें यह कोड एक कॉन्स्ट-योग्य सदस्य फ़ंक्शन ? यदि हां, तो आपको const_iterator
:
वेक्टर & lt; mapObject :: MapObject & gt; :: const_iterator का उपयोग करने की आवश्यकता होगी;
यदि सदस्य फ़ंक्शन const-qualified है, तो केवल शुरू ()
और end ()
के const-qualified overloads सदस्य वेक्टर उपलब्ध हो जाएगा, और उन दोनों वापसी const_iterator
s।
Comments
Post a Comment