【问题标题】:default pointer values in map when using operator[] [duplicate]使用运算符 [] 时映射中的默认指针值 [重复]
【发布时间】:2015-04-21 05:07:32
【问题描述】:

由于缺少索引而将指针插入映射是否始终为 NULL?

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

myFoo 是否保证为 NULL?

【问题讨论】:

    标签: c++


    【解决方案1】:

    来自cppreference

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

    所以是的,这肯定是NULL

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-11
        • 2020-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-21
        相关资源
        最近更新 更多