"消去"を含むベクトルの要素を削除すると、消去されたメモリはありません。たとえば、サイズ2000のベクトルを作成します。作成後、プログラムは1,5 MBのメモリを使います。消去呼び出しを行うと、何も消去されません。すべての要素はなくなっています。しかし彼らはまだ記憶に残っています。ベクトルの要素を削除する方法。 (消去は機能しません)
例えば:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
//Makes a vector of 2000 items
vector<int> test(200000);
//Pause for test purpose
system("pause");
//erase all elements
test.erase(test.begin(),test.end());
//Pause for test purpose
system("pause");
return false;
}
サイズは0を返しますが、プロセスはまだメモリの1,5MBを使用しています。
どのようにプロセスが使用しているメモリを測定しますか? –
たぶん、あなたはこれを読む必要があります。 http://stackoverflow.com/questions/586634/shrinking-a-vector はそれがお役に立てば幸いです。 –