c++ - How to return a std::map item -
c++ - How to return a std::map item -
i have issue on returning item std::map residing within class. trying create simple function like
explorerobjectmapitem* myclass::getfirst() { minternalmapiterator = mobserverlookup.begin(); explorerobjectmapitem* item = &*minternalmapiterator; homecoming item; } where next typedefs used
typedef map< subject*, shared_ptr<explorerobject> > explorerobjectmap; typedef pair<subject*, shared_ptr<explorerobject> > explorerobjectmapitem; typedef explorerobjectmap::iterator explorerobjectiter; and map , iterator class members:
explorerobjectmap mobserverlookup; explorerobjectiter minternalmapiterator; the above code getfirst() function gives compile error saying
e2034 cannot convert 'pair<subject * const,boost::shared_ptr<explorerobject> > *' 'explorerobjectmapitem *' not sure going on here. help appreciated.
a std::map<k,v> not contain std::pair<k,v> objects. contains std::pair<const k, v> objects. missing const throws off conversion.
you prepare either
typedef pair<subject* const, shared_ptr<explorerobject> > explorerobjectmapitem; or
typedef explorerobjectmap::value_type explorerobjectmapitem; c++ dictionary std
Comments
Post a Comment