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;
}
};