STLデフォルトアロケータは、オブジェクトを配置する前にRAWメモリをゼロにしますか?このコードを参照してください。このコメントは私のプラットフォームでの動作を反映しています。初期化されていないクラスフィールドとSTLコンテナ
#include <iostream>
#include <vector>
struct Foo
{
Foo() {} // n isn't initialized
int n;
};
int main()
{
std::vector<Foo> v(2); // zeroed
std::cout << v[0].n << '\n';
std::cout << v[1].n << '\n';
Foo foo; // contains garbage
std::cout << foo.n << '\n';
}
ゼロメモリ未使用メモリを無効にすることはできますか? PODを初期化する値と同じではないことに注意してください。
なぜそれを無効にするのか説明できますか?効率性の問題またはその他の理由? –