對於map<string,string> proMap;這樣的變量,默認是採用string的<操作法,某些情況下,比如11會排在2的前面,此時需要自定義比較函數
如下例所示:
struct StrCompare {
bool operator()(const std::string &lhs, const std::string &rhs) const
{
return lhs.length()<rhs.length() || (lhs.length()==rhs.length() && lhs<rhs);
}
};
std::map<std::string, std::string, StrCompare> m_pramMap;
即可實現“11” 排序在“2”後面。
參考:
https://www.jianshu.com/p/5b24ac2a6cac