某些時候可能要用一個數組作爲map的key,這時候有一些細節需要注意。
struct key
{
int a[5];
};
首先,用自定義類型做key時,要重載<操作符。格式如下(括號外的const少了會報錯的):
bool operator<(const key& k) const
{
//...
}
然後,比較時需要對數組每個比較,若是直接return a[0]<k.a[0],則只相當於用了一個整數做key:
for(int i=0; i<5; ++i)
{
if(a[i] == k.a[i])
continue;
else
return a[i] < k.a[i];
}
return false;