在地图矢量内查找对

Find pair within vector of maps

本文关键字:查找 地图      更新时间:2023-10-16

我使用以下函数试图在地图向量中查找地图元素的键。

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;
    }

  }
}     

该函数正确返回第一个向量索引 (at(0)) 中任何项的值。但是每当我尝试访问第二个索引 (at(1) 中的元素时,它都会出现段错误。我确信地图已正确插入并在第二个索引处填充。

有人在这里看到问题吗?

有人在这里看到问题吗?

是的。 cur 不会跟踪当前地图。

尝试将if行替换为:

if (its != table.at(i).end())