我有以下代码片段:
map<string, map<string,size_t> > occurence_counts;
.... initialize map from a file....
for(const auto & a: occurence_counts)
cout << a.first << "\n";
cout << occurence_counts.count("sam") << "\n";
输出是:
sam
jake
cate
0
什么?!当我输出键时,“sam”在那里,但“sam”的计数为 0??任何人都可以帮助我理解吗?此外,当我执行 occurence_counts["sam"] 时,它也不会返回任何内容。感谢您的帮助。
最佳答案
如果您将每个键的组成字符打印为十六进制对,那么您可以看到实际 存储了什么。当您以人类可读的形式输出字符串时,您掩盖了尾随空格和其他此类异常,显然,在这种情况下存在。
关于c++ - 元素看起来像在 map 中,但它不在 map 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33078656/