使用 operator[] 时映射中的默认指针值

default pointer values in map when using operator[]

本文关键字:默认 指针 映射 operator 使用      更新时间:2023-10-16

由于缺少索引而插入到映射中的指针是否总是 NULL?

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

myFoo保证为空吗?

来自 cpp首选项:

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

所以是的,这保证是NULL.

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

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