我有以下代码片段:
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”]时,它也不会返回任何内容。任何帮助表示赞赏。
答案 0 :(得分:1)
如果您打印每个键的组件字符,作为十六进制对,那么您可以看到实际存储的是什么。当你只是以人类可读的形式输出字符串时,你会掩盖尾随的空格和其他明显存在的异常情况。