C++ STL vectorのメモリ解放
Sponsored Links
皆さんこんにちは
お元気ですか?私は眠いです!I love sleeping
vectorの解放について
このvector色々と使い勝手いいですよね。なんかオブジェクトとかフリーダムに入れれたり、ネストできたりと最高でございます。
しかし、このvector実は、deleteできません。
つまり、デストラクタを呼び出さないとメモリから解放されないといった残念なシステムとなっているわけです。
因みにclear関数でも解放はされません。悪しからず
さて、一見全くをもって解放手段が思い浮かばないこのvectorですが、たったひとつだけあるようです。
vector<int> arr(5); vector<int>().swap(arr);
どういうことかといいますと一時的に領域と今保持しているarrとをスワップします。
すると一時的な領域から出た瞬間にデストラクタが呼ばれます(この説明あってるかな)。
このような方法により、vectorを開放することができます。
てかvectorの解放ってこんなにめんどくさかったのか…orz