C map以自定義資料型別做鍵值

2021-06-28 18:09:10 字數 1177 閱讀 3301

template, class a = allocator>
第乙個引數 key: map的關鍵字型別

第二個引數t:      map的值型別

第三個引數:        比較函式compare(仿函式)

第四個引數:        記憶體配置物件    

map內部儲存機制實際是以紅黑樹為基礎,紅黑樹在插入節點時,必須按照大小比較之後在乙個合適的為止進行插入動作,map預設的比較函式compare為less,所以作為鍵值插入,則必須有小於號「

要使結構體、類能夠作為map的鍵值,那麼首先必須使這些資料型別支援operator《操作.

引用到的標頭檔案

#include #include #include using namespace std;
time結構體定義

struct time

time(uint16 nyear,uint8 nmonth,uint8 nday,uint8 nhour,uint8 nminute,uint8 nsecond,uint16 ntick)

time(const time &sttime)

bool operator

else if (this->nyear == sttime.nyear)

else if (this->nmonth == sttime.nmonth)

else if (this->nday == sttime.nday)

else if(this->nhour == sttime.nhour)

else if (this->nminute == sttime.nminute)

else if (this->nsecond == sttime.nsecond)

else

}else

}else

}else

}else

}else

}else

}};typedef maptmap;

測試**:

int main(void)

測試除錯結果:

map以自定義型別當Key(鍵值)

map以自定義型別當key 鍵值 by mh1026 www.libcl.cn 今天,在公司的群裡有人問及關於map的鍵值能www.libcl.cn否使用自定義型別 類或者結構 當時我也不清楚,所以回來學習一下。關於map的定義 namespace std 第乙個template引數被當做元素的ke...

map以自定義型別當Key(鍵值)

今天,在公司的群裡有人問及關於map的鍵值能www.libcl.cn否使用自定義型別 類或者結構 當時我也不清楚,所以回來學習一下。關於map的定義 namespace std 第乙個template引數被當做元素的key,第二個template引數被當作元素的value。map的元素型別key和t...

map以自定義型別當Key(鍵值)

map以自定義型別當key 鍵值 by mh1026 www.libcl.cn 今天,在公司的群裡有人問及關於map的鍵值能www.libcl.cn否使用自定義型別 類或者結構 當時我也不清楚,所以回來學習一下。關於map的定義 namespace std 第乙個template引數被當做元素的ke...