gpt4 book ai didi

c++ - std::unordered_map operator[] 是否对不存在的键进行零初始化?

转载 作者:行者123 更新时间:2023-12-02 18:06:01 28 4
gpt4 key购买 nike

根据 cppreference.com,std::map::operator[]对于不存在的值进行零初始化。

但是,同一站点没有提及 std::unordered_map::operator[] 的零初始化,但它确实有一个依赖于此的示例。

当然这只是一个引用站点,不是标准。那么,下面的代码可以吗?

#include <unordered_map>
int main() {
std::unordered_map<int, int> map;
return map[42]; // is this guaranteed to return 0?
}

最佳答案

在您链接的网站上显示:

When the default allocator is used, this results in the key being copy constructed from key and the mapped value being value-initialized.

所以intvalue-initialized :

The effects of value initialization are:

[...]

4) otherwise, the object is zero-initialized

这就是结果为0的原因。

关于c++ - std::unordered_map operator[] 是否对不存在的键进行零初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59192236/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com