<分区>
以下代码的预期行为是什么,
#include <map>
...
std::map<int, A *> myMap;
myMap[0];
if(myMap[0] == NULL) {// true or false?
}
if 语句的计算结果是否为真?
<分区>
以下代码的预期行为是什么,
#include <map>
...
std::map<int, A *> myMap;
myMap[0];
if(myMap[0] == NULL) {// true or false?
}
if 语句的计算结果是否为真?
最佳答案
插入的值将被初始化为一个空指针。
std::map::operator[]如果键不存在,将执行插入;映射值将为 value-initialized , 对于指针类型它是 zero-initialization ,这会导致空指针。
顺便说一句:最好使用 nullptr (C++11 起) 而不是 NULL
。
关于c++ - map中operator[]插入的指针类型的值是否总是NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40519454/