地图中的operator []插入指针类型的值总是为NULL吗?

Mox*_*Mox 1 c++ dictionary pointers initialization stdmap

以下代码的预期行为是什么,

#include <map>
...
std::map<int, A *> myMap;
myMap[0];
if(myMap[0] == NULL) {// true or false?
}
Run Code Online (Sandbox Code Playgroud)

if语句会评估为true吗?

son*_*yao 5

插入的值将初始化为空指针.

如果key不存在,std :: map :: operator []将执行插入; 映射的值将被初始化,对于指针类型,它是零初始化,这导致空指针.

BTW:最好使用nullptr(因为C++ 11)而不是NULL.