2012-01-31 104 views
0

我想定義與鍵std::mapstd::pair<std::string, std::string>像遵循如何使用std ::對作爲關鍵的std ::地圖

typedef std::map< std::pair<std::string, std::string>, std::string> my_map

這是允許的,以及我怎樣寫comparasion operator爲這樣的地圖。

+10

當你......嘗試時發生了什麼? – 2012-01-31 07:37:22

+1

爲什麼不允許它?你會如何爲'std :: map '編寫一個比較運算符? – 2012-01-31 07:39:00

+0

你的C++平臺文件'std :: pair'如何?答案就在那裏。 – 2012-01-31 09:25:28

回答

6

是的,它是允許的。

std::pair已經有一個operator<按順序比較這兩個值,所以您可能根本不需要爲比較器做任何特殊的操作。

+0

巴,你打我...現在刪除我的次優答案! – Arafangion 2012-01-31 07:40:36

+0

值得一提的是,它僅用於詞典對比。所以對於一對'int's,你必須自己定義它。 – ezdazuzena 2012-01-31 08:02:25

+0

@ezdazuzena:我懷疑你錯了。 – visitor 2012-01-31 08:42:08

相關問題