map的value默認值,如何map的value自定義

1.map的value默認值
在使用map的[]操作符對其進行訪問時,如果map中尚沒有查詢的key值,則將創建一個新的鍵值對。其key值爲查詢的值,value值分爲以下兩種情況:
value爲內置類型時,其值將被初始化爲0
value爲自定義數據結構時,如果定義了默認值則初始化爲默認值,否則初始化爲0

2.自定義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

實例:給定一個字符串,找到它的第一個不重複的字符,並返回它的索引。如果不存在,則返回 -1。

class Solution {
public:
    int firstUniqChar(string s) {
        unordered_map <char,int> hashMap;
        for(auto i: s)
        	hashMap[i]++;
        for(int i = 0; i < s.size(); i++)
        {
            if(hashMap[s[i]] == 1)
                return i;
        }
        return -1;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章