【发布时间】:2016-11-10 03:20:36
【问题描述】:
以下代码的预期行为是什么,
#include <map>
...
std::map<int, A *> myMap;
myMap[0];
if(myMap[0] == NULL) {// true or false?
}
if 语句的计算结果是否为真?
【问题讨论】:
-
NULL应该读作nullptr吗?还有为什么不使用智能指针 -
该代码什么也不做,因为它不能编译。输入正确的标题,因为
map可能是某人的自制地图。 -
@EdHeal,它是公司的一些遗留代码,我们正在使用遗留编译器.. xD
-
如果您想避免在地图中输入无效数字,请使用
find()进行搜索,使用insert()而不是[]进行新输入。 -
@SauravSahu,我同意这一点。它将提高代码的健壮性,但由于办公室的 SE 实践非常差,我不允许更改不属于我的代码。
标签: c++ pointers dictionary initialization stdmap