如何在C ++中将KEYs与VALUEs进行比较?

时间:2015-09-26 22:40:50

标签: c++ hashmap maps

我得到了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)

请帮我解决我做错的地方。

1 个答案:

答案 0 :(得分:0)

for (auto it = resources.begin(); it != resources.end();) {
     if (it->second == a) {
         it = resources.erase(it);
     }
     else {
         ++it;
     }
}