根据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?
}
std::optional
? - 463035818_is_not_a_numberstd::optional
对象仍然是已初始化的对象。 - bolovstd::optional
的has_value
函数可以测试它,但失败了,所以我想你是正确的。 - Ælex