C++ keresés a kulcsra - map<key, map<>>

C++ keresés a kulcsra - map<key, map<>>
2007-05-15T15:56:56+02:00
2007-05-16T18:40:56+02:00
2022-11-04T14:50:37+01:00
ZsZs
Sziasztok:

Van egy osztályom (a most nem lényeges tagok kigyomlálva...) :

class SW_INPAR { public: static void getCurrDocParamsByKey(char*, std::map<char*, double>&); class Err_ParameterNotFound {}; private: static std::map< char*, std::map<char*, double>* > mapInPar; };

És a getCurrDocParamsByKey() függvénnyel szeretném a kulcs alapján megkesett beágyazott map-et visszaadni (átmásolni a referenciaként kapott map-be).
(Lehet, nem a leghatékonyabb módszer, de mindössze 3-4 értékről van szó.)

A függvényem kódja:

void SW_INPAR::getCurrDocParamsByKey(char* key_component, map<char*, double>& map_component) { map< char*, map<char*, double>* >::iterator it; it = mapInPar.find(key_component); if (it != mapInPar.end() ) for (it = mapInPar.begin(); it != mapInPar.end(); ++it) for (map<char*, double> iterator::it2 = (it->second).begin(); it2 != (it->second).end(); ++it2) map_component[it2->first] = it2->second; else throw Err_ParameterNotFound(); }

A legbelső for-nál, azt mondja a fordító:
error C2228: left of '.begin' must have class/struct/union type


Vaószínüleg a
(it->second).begin() és a (it->second).end()-el van baja... pedig az it->second-nak egy másik map-et kéne adnia aminek kéne, hogy legyen begin() és end() tagja...

Köszi,
ZsZs.
Mutasd a teljes hozzászólást!
Nah hat tobb problema is van, egyreszt a scope operator rosz helyen volt, masreszt a masodik parametere a kulso mapnek egy map<,>* nem sima map<,> tehat:


for (it = mapInPar.begin(); it != mapInPar.end(); ++it) for (map<char*, double>::iterator it2 = (it->second)->begin(); it2 != (it->second)->end(); ++it2) map_component[it2->first] = it2->second;
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd