无序映射的大小持续增加

huangapple go评论61阅读模式
英文:

Size of unordered map keeps increasing

问题

在最后的for循环中,unordered_map的大小为什么会增加?为什么会这样?

class Solution {
public:
    bool isAnagram(string s, string t) {
        if(s.size() != t.size()){
            return false;
        }
        
        unordered_map<char, int> sm;
        unordered_map<char, int> tm;
        for (int i = 0; i < s.size(); i++){
            sm
展开收缩
]++;
tm[t[i]]++; } for (int j = 0; j < sm.size(); j++){ cout << j << endl; cout << sm.size() << endl; if(sm[j] != tm[j]){ cout << sm[j] << endl; cout << tm[j] << endl; cout << j << endl; return false; } } return true; } };

我尝试在网上搜索,但找不到相关的答案。

英文:

The size of unordered map keeps increasing in the last for loop? Why is it so?

class Solution {
public:
    bool isAnagram(string s, string t) {
        if(s.size() != t.size()){
            return false;
        }
        
        unordered_map&lt;char,int&gt; sm;
        unordered_map&lt;char,int&gt; tm;
        for (int i = 0; i&lt;s.size();i++){
            sm
展开收缩
]++; tm[t[i]]++; } for (int j = 0; j&lt;sm.size();j++){ cout &lt;&lt; j &lt;&lt; endl; cout &lt;&lt; sm.size() &lt;&lt;endl; if(sm[j] != tm[j]){ cout &lt;&lt; sm[j] &lt;&lt; endl; cout &lt;&lt; tm[j] &lt;&lt; endl; cout &lt;&lt; j &lt;&lt; endl; return false; } } return true; } };

I have tried to search online but can't find any relevant answer.

答案1

得分: 2

https://en.cppreference.com/w/cpp/container/unordered_map/operator_at

返回映射到等同于键的值的引用,如果这样的键不存在,则执行插入操作。

sm[j] != tm[j]

对于映射,[] 运算符在键不存在时插入条目

您可能想要调用 .find(j) 代替。

英文:

https://en.cppreference.com/w/cpp/container/unordered_map/operator_at
> Returns a reference to the value that is mapped to a key equivalent to key, performing an insertion if such key does not already exist.

sm[j] != tm[j]

The [] operator on maps inserts entries if they didn't already exist.

You probably wanted to call .find(j) instead

huangapple
  • 本文由 发表于 2023年2月9日 00:43:57
  • 转载请务必保留本文链接:https://go.coder-hub.com/75388999.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定