14
以及如何在C++中執行此操作?我可以定義一個鍵是結構的地圖嗎?
以及如何在C++中執行此操作?我可以定義一個鍵是結構的地圖嗎?
只要它實現operator<
(加上存儲在容器中的值的通常複製和分配要求),您就可以使用任何類型作爲映射關鍵字。
例如:
struct example { int x; }
bool operator < (const example &l, const example &r) { return l.x < r.x; }
std::map<example, int> values;
或者,可以提供一個比較函數作爲地圖模板而不是限定operator<
的第三個參數。更多詳情here(參數Compare
)。
「只要它實現了一個運算符<」 - 或者這個類型有一個專門的'std :: less'。 'map'默認使用'less','less'默認使用'operator'',所以有兩條路由進來。 – 2010-10-14 17:42:54