Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 可以安全地依赖无序映射(hashmap)中的初始化值_C++_Hashmap_Unordered Map_Value Initialization - Fatal编程技术网

C++ 可以安全地依赖无序映射(hashmap)中的初始化值

C++ 可以安全地依赖无序映射(hashmap)中的初始化值,c++,hashmap,unordered-map,value-initialization,C++,Hashmap,Unordered Map,Value Initialization,假设我想构造一个std::unordered_map来映射字符串中字符的频率。我会做类似的事情 char* myString; std::unordered_map<char, int> hashmap; for(char* pch = myString; *pch !=0 ; pch++) { hashmap[*pch]++; } char*myString; std::无序的_映射hashmap; for(char*pch=myString;*pch!=0;pch++

假设我想构造一个
std::unordered_map
来映射字符串中字符的频率。我会做类似的事情

char* myString;
std::unordered_map<char, int> hashmap;
for(char* pch = myString; *pch !=0 ; pch++)
{
     hashmap[*pch]++;
}
char*myString;
std::无序的_映射hashmap;
for(char*pch=myString;*pch!=0;pch++)
{
hashmap[*pch]++;
}

对我来说,这感觉很危险,因为我怎么知道
hashmap[*pch]++
将在hashmap条目的值中构造一个从0开始的整数?我在哪里可以找到此保证(如果存在)?

语言和标准库的常用参考,至少如果您按照Praetorian提到的值初始化链接进行操作。另请参见(答案相同)。

您可以通过阅读文档找到保证。这是非常安全的,因为如果密钥不存在,
unordered\u map::operator[]
将首先插入一个初始化的值
int
,即
0