c++ - 元素看起来像在 map 中,但它不在 map 中

标签 c++ stdmap

我有以下代码片段:

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/

相关文章:

c++ - 如何在 C 中找到可执行文件的位置?

c++ - OpenCV 找到最大的轮廓?

c++ - php 中的 Oci 比 occi 快得多吗?

c++ - map 声明未编译

c++ - 带有提示的 std::map::insert_or_assign 的复杂性

c++ - 在 C++ 中返回 Obj&,temp 指针会发生什么变化?

c++ - 如何全局创建对象并使用该对象访问全局范围内的公共(public)成员函数?

c++ - 修改映射对的值

c++ - 如何使用C++ 11声明静态查找表

c++ - 如何更新 map C++ 中元素的值