我得到了HashMap的声明,如下所示:
HashMap<String, T*> resources; //given by my professor
此处还提供了删除函数 void removeResource(T * a),此函数的目标是在地图中搜索参数(a),如果找到该参数,则删除该值和来自地图的关键词。
所以我所做的就是:
void removeResource(T* a) //function part given by my professor
{
//find the resource and remove it from the map
for (auto it = resources.begin(); it != resources.end(); it++){
if (resources.at(it) == a)
resources.erase(it);
}
}
Visual Studios编译器抱怨指向 if(resources.at(it)== a)。
请帮我解决我做错的地方。
答案 0 :(得分:0)
for (auto it = resources.begin(); it != resources.end();) {
if (it->second == a) {
it = resources.erase(it);
}
else {
++it;
}
}