我自定義std :: map中的比較如下。std :: map :: erase(const key_type&)比較定製後停止工作
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)仍然有效?
我的地圖鍵可以有相同的長度。這就是我的期望。但是,即使我更改爲 'class my_cmp { public: bool operator()(const string&a,const string&b){if(length)== b.length()) return(a b.length()); } };' – CGor