在我的代码,我有一个std::map
看起来是这样的:映射空指针值
std::map<std::string, A*> myMap;
其中A是我的自定义类之一。
当我访问不通过operator[]
存在像这样的地图元素:
std::string s("hello");
A* pA = myMap[s];
我知道,一个新的元素与该键创建,但我想指针被初始化为NULL。换句话说,如果myMap[s]
存在,应该返回一个有效的指针。如果没有,我想在上面的代码执行后,pA为NULL。
默认情况下,如果myMap[s]
不退出,pA是否会包含垃圾?我怎样才能让它包含值NULL如果元素不退出?
如果密钥在调用之前不存在,它将成为nullptr。在这种情况下,这种自动插入的映射值是一个指针类型,它是值初始化的,每个标准的值初始化指针是零初始化的,这与nullptr是同义的。 IE浏览器。你可以免费得到它。 – WhozCraig 2013-02-26 03:23:14
downvoter照顾精心制作?我详细解释了我想要达到的目标,并在提供的情况下询问了有关默认行为的问题。 – user974967 2013-02-26 03:23:30
@ user974967该问题显示没有研究工作(即,您甚至没有尝试阅读手册)。 – melpomene 2013-02-26 03:25:16