如果我有这样的地图:
std::map<char, std::vector<char> > m;
m['A'].push_back('a');
m['A'].push_back('b');
m['A'].push_back('c');
m['B'].push_back('h');
m['B'].push_back('f');
Run Code Online (Sandbox Code Playgroud)
我如何找到并删除'b'?这可能吗?
当然,使用迭代器:
for (std::map<char, std::vector<char> >::iterator i = m.begin(); i != m.end(); ++i) {
std::vector<char>::iterator j = std::find(i->second.begin(), i->second.end(), 'b');
if (j != i->second.end()) {
i->second.erase(j);
}
}
Run Code Online (Sandbox Code Playgroud)