テンポラリバッファとしてのvector
http://www.geocities.jp/ky_webid/cpp/library/002.html
一時的な動的バッファを用意したい場合、vectorを利用すると便利です。
普通にnewで確保した場合、
void foo (int size) { char* buf = new char[size] // いろいろ delete [] buf; }
のように、最後にdeleteを呼ばないといけません。
ですがvectorを利用すれば、vectorのデストラクタ内で領域が解放されるのでdeleteを意識せずに済みます。
void foo (int size) { vector<char> buf(size); // いろいろ }
deleteを意識しなくても良いというのはかなり便利です。
例えばnewで確保していた場合は、関数からreturnで抜ける全ての箇所でdeleteをしないといけません。
void foo (int size) { char* buf = new char[size] // いろいろ if ( flag ) { delete [] buf; return; } // いろいろ delete [] buf; }
こういう面倒臭い作業を回避できるのでvector使ったほうがいいですね。
また、バッファではなく、単一のオブジェクトを一時的に用意したい場合はvectorではなくauto_ptrというものを使ったほうが良いらしいです。auto_ptrについてはまた今度。