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

Popular posts from this blog

windows - Heroku throws SQLITE3 Read only exception -

lex - Building a lexical Analyzer in Java -

python - rename keys in a dictionary -