私はいつも次のコードだと思っていました
std::map<int, int> test;
std::cout << test[0] << std::endl;
マップ内で単位化された値が作成されるため、ランダムな値が出力されます。ただし、作成された int は実際には常にゼロに初期化され、標準の組み込み型も特定の状況でゼロに初期化されることが判明しました。
問題は、標準型 (int/char/float/double/size_t) のゼロ初期化がいつ実行されるかです。int i;
どこかで宣言すると、ランダムなデータが含まれることは間違いありません。
PS 質問は C++03 標準に関するものです。質問の理由は、int/float/size_t などの組み込み型の初期化をいつ提供する必要があるか、またはいつ安全に省略できるかがわからなくなったためです。