c ++地图问题

Bra*_*ble 1 c++

如果我有这样的地图:

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'?这可能吗?

Gre*_*ill 6

当然,使用迭代器:

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)