我正在检查区分大小写的两个 map ,如果在 note_map 中出现重复项,则 mag_map 必须大于或等于。
void checkMagazine(vector<string> magazine, vector<string> note) {
std::map<string, int> mag_map;
std::map<string, int> note_map;
for(auto it : magazine){
mag_map[it]++;
}
for(auto it : note){
note_map[it]++;
}
我想检查 mag_map 以查看它是否包含 note_map 中的键,我还想查看 mag_map 中是否有足够的事件来制作笔记。
最佳答案
您的开端不错。现在您只需遍历 note
并检查每个单词是否出现在 mag_map
中。如果是,那么您还需要检查该单词在 mag_map
中出现的次数是否至少 与在note_map
中出现的次数一样多。如果在任何一次迭代中有一个条件不成立,那么您可以从那里中断并打印“否”,因为无法从杂志中制作赎金票据。
提示:使用find(Key)
搜索并 operator[]
获取计数。
关于c++ - 比较两个映射以查看一个是否是子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56031080/