在使用map的[]操作符對其進行訪問時,如果map中尚沒有查詢的key值,則將創建一個新的鍵值對。其key值爲查詢的值,value值分爲以下兩種情況:
- value爲內置類型時,其值將被初始化爲0
- value爲自定義數據結構時,如果定義了默認值則初始化爲默認值,否則初始化爲0
使用第二種方法自定義map的value默認值
例如:
map的value爲int類型,key值也爲value類型,想要將value的默認值自定義爲1,可以定義一個只包含一個默認num值的結構體,將其作爲我們map的value值類型。
struct IntDefaultedToOne {
int num = 1;
};
map<int,IntDefaultToOne> mp;
cout<<map[0].num; //將輸出1