マップのキー値として文字列を使用しており、比較関数をカスタムしようとしています。文字列の長さを比較して比較関数をカスタム化すると、同じサイズの異なる文字列をマップに渡すことができません。以下のようにコードは次のとおりです。マップの文字列としての文字列、比較関数のカスタム
class Solution {
public:
int findLUSlength(vector<string>& strs) {
if(strs.size() < 2) return -1;
auto cmpByStringLength = [](const string &s1, const string &s2)->bool
{
return s1.size() < s2.size();
};
map<string, int, decltype(cmpByStringLength)> mpstringcount(cmpByStringLength);
for(int i = 0; i < strs.size(); i++)
mpstringcount[strs[i]]++;
for(auto itmp = mpstringcount.begin(); itmp != mpstringcount.end(); itmp++)
{
cout << "itmp->first: " << itmp->first << endl;
}
return -1;
}
};
私の入力STRS場合["aba","cdc","eae","abcd"]
で、コードになるだけで、出力:"abcd"
と"aba"
。
"this"を理解していますか?何を理解する? –