c++ 自定義map的排序方法

對於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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章