I'm trying to access a map
that is contained in another map
, but I get an error.
The code is as follows:
map<string, map<string, list<string>>>::iterator iter;
map<string, list<string>>::iterator iterdos;
map<string, list<string>> m_spm;
pair<string, map<string, list<string>> > p_aux;
pair<string, list<string>> p_auxdos,spm;
//cout<<"PALABRA CLAVE ENCONTRADA "<<palabra_clave_encontrada<<endl;
iter = palabra_paginas.find(palabra_clave_encontrada);
if(iter==palabra_paginas.end()){
//Añadir un elemento nuevo
//buscamos si esta el dominio
p_aux.first=palabra_clave_encontrada;
spm.first=dominio;
spm.second.push_back(nodo);
p_aux.second.insert(spm);
palabra_paginas.insert(p_aux);
}
else{
m_spm=palabra_paginas->second;
iterdos=m_spm.find(dominio);
if(iterdos==palabra_paginas->second.end()){
p_auxdos.first=dominio;
p_auxdos.second.push_back(nodo);
palabra_paginas->second.insert(p_auxdos);
}
else{
iter->second->second.push_back(nodo);
}
}
When I try to access palabra_paginas->second
I get an error, as in the following:
main.cpp: In function 'int main(int, char**)':
main.cpp:442:32 error: base operand of '->' has non-pointer type 'std:map<std::__cxx11::basic_string<char>, std::map<std::__cxx11::basic_string<char>, std::_cxx11::list<std::__cxx11::basic_string<char>
m_spm=palabra_paginas->second;
^
main.cpp:444:38: error: base operand of '->' has non-pointer type 'std:map<std::__cxx11:::basic_string<char>, std::map<std::__cxx11::basic_string<char>, std::_cxx11::list<std::__cxx11::basic_string<char>
if(iterdos==palabra_paginas->second.end()){
^
main.cpp:450:25: error: base operand of '->' has non-pointer type std::map<std::__cxx11::basic_string<char>, std::__cxx11__::list<std::basic_string<char> > >
iter->second.push_back(nodo);