2009-01-13 std::vectorのメモリ解放 プログラミング言語 C++ vecotrで確保したメモリは、clearメソッドを呼んでも解放されず デストラクタが来るまではずっとメモリを確保している。 そこで、以下の方法で解放することができる。 std::vector<int> hoge; // hogeのresizeとclearを繰り返す。 // 解放 std::vector<int>().swap(hoge); 一時オブジェクトを作成し、そのオブジェクトとswapすると hogeはサイズ0の一時オブジェクトと交換されるため、サイズが0となり 一時オブジェクトは、その場でデストラクタを呼んで消滅するため、メモリが解放される。