STL映射存储搜索到的密钥

dls*_*lsa 3 c++ stl

我刚刚发现当我搜索地图时:

  std::map<std::string, int> aMap;
Run Code Online (Sandbox Code Playgroud)

我搜索的键开始成为地图的一部分.在上面的情况下,值存储为零.在指针的情况下,它将值存储为0值指针

我正在使用[]运算符进行搜索,如:

  int a = aMap["some key"];
Run Code Online (Sandbox Code Playgroud)

你能证实这一点吗?我想我误解了[]运算符.它在做作业吗?

哪里可以找到这些"功能"的STL文档?

Wil*_*ean 8

你在用[]运算符搜索它吗?如果是,那么是的,这是定义的行为.

如果您不想要此行为,则应使用'find'方法.

对于STL的一个很好的参考是Nicolai Josuttis的书.