使用operator []时,地图中的默认指针值

时间:2015-04-20 21:02:17

标签: c++

由于索引缺失而导致插入地图的指针总是为空吗?

std::map<int, Foo*> myMap;
Foo* myFoo = myMap[0];

myFoo是否保证为NULL?

2 个答案:

答案 0 :(得分:2)

来自cppreference

  

如果执行插入,则映射的值是值初始化的(默认为类类型构造,否则为零初始化)并返回对它的引用

所以是的,这保证是NULL

答案 1 :(得分:0)

是的,当访问缺少的索引时,它是值初始化的,这意味着在这种情况下返回空指针(因为它是标量值)。

来源:http://en.cppreference.com/w/cpp/container/map/operator_at