对于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