我想定義與鍵std::map
爲std::pair<std::string, std::string>
像遵循如何使用std ::對作爲關鍵的std ::地圖
typedef std::map< std::pair<std::string, std::string>, std::string> my_map
這是允許的,以及我怎樣寫comparasion operator
爲這樣的地圖。
我想定義與鍵std::map
爲std::pair<std::string, std::string>
像遵循如何使用std ::對作爲關鍵的std ::地圖
typedef std::map< std::pair<std::string, std::string>, std::string> my_map
這是允許的,以及我怎樣寫comparasion operator
爲這樣的地圖。
是的,它是允許的。
std::pair
已經有一個operator<
按順序比較這兩個值,所以您可能根本不需要爲比較器做任何特殊的操作。
巴,你打我...現在刪除我的次優答案! – Arafangion 2012-01-31 07:40:36
值得一提的是,它僅用於詞典對比。所以對於一對'int's,你必須自己定義它。 – ezdazuzena 2012-01-31 08:02:25
@ezdazuzena:我懷疑你錯了。 – visitor 2012-01-31 08:42:08
當你......嘗試時發生了什麼? – 2012-01-31 07:37:22
爲什麼不允許它?你會如何爲'std :: map'編寫一個比較運算符? –
2012-01-31 07:39:00
你的C++平臺文件'std :: pair'如何?答案就在那裏。 – 2012-01-31 09:25:28