Я всегда думал, что следующий код
std::map<int, int> test;
std::cout << test[0] << std::endl;
напечатает случайное значение, потому что он создаст единичное значение внутри карты. Однако оказывается, что созданный int на самом деле всегда инициализируется нулем, И стандартные встроенные типы также инициализируются нулем при определенных обстоятельствах.
Возникает вопрос: когда выполняется инициализация нуля для стандартных типов (int / char / float / double / size_t)? Я почти уверен, что если я объявлю int i;
в глуши, он будет содержать случайные данные.
P.S. Речь идет о стандарте C ++ 03. Причина вопроса в том, что теперь я больше не уверен, когда у меня есть для обеспечения инициализации для встроенных типов, таких как int / float / size_t, или когда это можно безопасно опустить.