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