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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください