我有这个映射,其中键是字符串,值是Product类型的向量(包含和int&#34的结构;代码"变量和一些其他变量)。 给定代码,我想删除存在该代码的所有出现的向量元素,并且我需要对所有地图元素执行此操作。 这就是我正在尝试的,我的程序崩溃了:
void removeByCode(map<string, vector<Product>> &products, int code){
for (auto productlist: products){
for (auto i=productlist.second.begin(); i != productlist.second.end(); i++){
if ((*i).code==code)
i = productlist.second.erase(i);
}
}
}
这是崩溃的一个用例(假设这是地图对的样子):
a:[代码:1;代码:2]
b:[代码:1]
c:[代码:1;代码:2]
要删除的代码:2
PS:我需要使用擦除(不是删除或其他方法)