關於STL中map的key

某些時候可能要用一個數組作爲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;


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