std::vector::clear
提供: C++入門
スポンサーリンク
std::vector::clear とは、std::vectorのコンテナの内容をクリアするメンバ関数です。ただし、メモリサイズが解放されるわけではないため、shrink_to_fit()が必要になります。
読み方
- std::vector::clear
- えすてぃーでぃー べくたー くりあ
概要
std::vectorは、std::vector::clearで確保しているメモリサイズを解放してくれるわけではありません。
下記の例では、clear後のサイズは0ですが、capacityは、clear()前と変化していません。 vectorを適切なメモリサイズまで減らすには、shrink_to_fit()を使用します。このメンバ関数は、新しいバージョンのコンパイラが必要なので、注意が必要です。
vector_clear1.cpp の例
ソースコード vector_clear1.cpp
#include <iostream> #include <vector> using namespace std; int main(int argc, char const* argv[]) { vector<int> v; v.push_back(1); v.push_back(2); v.push_back(3); cout << "size=" << v.size() << " capacity=" << v.capacity() << endl; v.clear (); cout << "size=" << v.size() << " capacity=" << v.capacity() << endl; // clear しても capacityは変化しません。 v.shrink_to_fit(); // 新しいコンパイラが必要です。 cout << "size=" << v.size() << " capacity=" << v.capacity() << endl; // ここで、capacityが変化します。 return 0; }
コンパイル
g++49 -std=c++11 -I/usr/local/lib/gcc49/include/c++/ \ -Wl,-rpath=/usr/local/lib/gcc49 vector_clear1.cpp -o vector_clear1
実行例
% ./vector_clear1 size=3 capacity=4 size=0 capacity=4 size=0 capacity=0
関連項目
ツイート
スポンサーリンク