Я всегда думал, что следующий код
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, или когда его можно безопасно опустить.