Lei*_*eif 0 c++ stl vector map
我正在使用以下函数试图在地图矢量中查找地图元素的键.
Entry* SymTab::lookup(const char* name)
{
for (int i=0;i<table.size();i++) //table is the vector
{
map<const char*, Entry, ltstr>::iterator its= table.at(i).find(name);
if (its != cur.end())
{
Entry* obj = &its->second;
cout<<(*its).first<<endl;
return obj;
}
}
}
Run Code Online (Sandbox Code Playgroud)
该函数正确返回第一个向量索引中的任何项的值(at(0)).但每当我尝试访问第二个索引中的元素时(在(1)处),它就会出现段错误.我确信已正确插入地图并填充在第二个索引处.
有没有人在这看到这个问题?
有没有人在这看到这个问题?
是.cur不跟踪当前地图.
尝试用以下代码替换该if行:
if (its != table.at(i).end())
Run Code Online (Sandbox Code Playgroud)