我在 std::map 中自定义比较,如下所示。
class my_cmp {
public:
bool operator()(const string &a, const string &b) {
return (a.length() >= b.length());
}
};
map<string, int, tmp_cmp> tmp;
适用于按字符串长度排序的所有键。但tmp.erase("a string");
不再起作用。是否有解决方案使 std::map::erase(key_type) 在自定义比较后仍然有效?