【发布时间】:2021-12-23 22:57:33
【问题描述】:
vector<int> matchingStrings(vector<string> s, vector<string> q) {
vector<int> res;
map<string, int> mp;
for(int i = 0 ; i < s.size();i++){
mp[s[i]]++;
}
for(int i = 0 ; i < q.size();i++){
res[i] = mp[q[i]];
}
return res;
}
【问题讨论】:
-
向量
res是空。所有对它的索引都将超出范围并导致未定义的行为。 -
而
std::map在内部添加一个新元素,如果与operator[]一起使用的键不存在,std::vector需要在使用operator[]获取元素之前填充。 -
如有疑问,请提取minimal reproducible example。这样的问题不仅需要它,它还可以帮助您理解问题。作为这里的新用户,请同时关注tour并阅读How to Ask。