代码:
class MapSum
{
public:
MapSum()
{
}
unordered_map<string,int> cnt;
void insert(string key, int val)
{
cnt[key]=val;
}
int sum(string prefix)
{
int res=0;
for(auto & [key,val] : cnt)
{
if(key.substr(0,prefix.size())==prefix)
res+=val;
}
return res;
}
};
关于语句 auto & [key,value] : cnt ;
b为数组或容器,是被遍历的对象
for(auto &a:b),循环体中修改a,b中对应内容也会修改
for(auto a:b),循环体中修改a,b中内容不受影响
for(const auto &a:b),a不可修改,用于只读取b中内容