17項 余分な容量を取り除くには、swap技法を使おう

余分な容量を取り除くには、swap技法を使おう


余分な容量(コンテナが確保しているメモリ容量)を取り除くには、下のように書きます。

vector<type>(v).swap(v);

まず、"vector(v)"でvectorの一時オブジェクトを作成します。
このコピーコンストラクタで作られた一時オブジェクトのサイズは、vの要素に必要な量だけになります。
それを"swap(v)"で元のコンテナと入れ替えることで、余分な容量を取り除けます。