« プログラマも使いたいATOK 2009 | メイン | std::accumulateの練習 »

vectorの容量はerase()しても減らない

vectorの容量はerase()しても解放されません。

vectorの容量をサイズに合わせて縮小するにはswap()を使用します。

vector<Customer> c(10000);
cout << c.capacity() << std::endl; #=> 10000

c.erase(c.begin() + 10, c.end());
cout << c.capacity() << std::endl; #=> 10000

vector<Customer>(c).swap(c);
cout << c.capacity() << std::endl;  #=> 10

トラックバック

このエントリーのトラックバックURL:
http://www.gesource.jp/mt/mt-tb.cgi/904

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2009年02月08日 16:03に投稿されたエントリーのページです。

ひとつ前の投稿は「プログラマも使いたいATOK 2009」です。

次の投稿は「std::accumulateの練習」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35