Я пытаюсь использовать карту с 4 вложенными картами. проблема в том, что мне нужно найти ключ в каждой карте и получить значение последней вложенной карты.
карта:
typedef map<int , map<int , map<int , map<int , map <int, string> > > > > g_tAllGroupMsgTextMap ;
выше карта. как получить доступ к последней вложенной карте (map<int, string>
)
string getText(int GroupId,int NetworkIdIndex,int LangCodeIndex,int MapVersion,int TagCode)
{
typedef map<int , map<int , map<int , map<int , map <int, string> > > > > g_tAllGroupMsgTextMap ;
g_tAllGroupMsgTextMap g_AllGroupMsgTextMap;
string l_sMsgTextResponseString;
typedef map<int , map<int , map<int , map <int, string> > > > g_tFirstInnerMap;
typedef map<int , map<int , map <int, string> > > g_tSecondInnerMap;
typedef map<int , map <int, string> > g_tThirdInnerMap;
typedef map <int, string> g_tFourthInnerMap;
g_tFirstInnerMap g_FirstMap;
g_tSecondInnerMap g_SecondMap;
g_tThirdInnerMap g_ThirdMap;
g_tFourthInnerMap g_FourthMap;
g_tAllGroupMsgTextMap :: iterator MsgTextMapItr;
g_tFirstInnerMap :: iterator FirstInnerMapItr;
g_tSecondInnerMap :: iterator SecondInnerMapItr;
g_tThirdInnerMap :: iterator ThirdInnerMapItr;
g_tFourthInnerMap :: iterator FourthInnerMapItr;
MsgTextMapItr = g_AllGroupMsgTextMap.find(GroupId);
if(MsgTextMapItr != g_AllGroupMsgTextMap.end())
{
FirstInnerMapItr= MsgTextMapItr->second.find(NetworkIdIndex);
if( FirstInnerMapItr != MsgTextMapItr->second.end())
{
SecondInnerMapItr = FirstInnerMapItr->second.find(LangCodeIndex);
if( SecondInnerMapItr != FirstInnerMapItr->second.end())
{
ThirdInnerMapItr=SecondInnerMapItr->second.find(MapVersion);
if(ThirdInnerMapItr != SecondInnerMapItr->second.end())
{
FourthInnerMapItr = ThirdInnerMapItr->second.find(TagCode);
if(FourthInnerMapItr != ThirdInnerMapItr->second.end())
{
cout<<"MsgText ->"<<FourthInnerMapItr->second<<endl;
//return FourthInnerMapItr->second;
}
else
{
cout<<"not found";
}
}
}
}
}
}
Я не получаю ни FourthInnerMapItr->second
, ни not found
что-нибудь нужно изменить ??