unordered_set<int> theSet;
順序付けられていないセットを使用して多数の整数を保持すると、clear() または rehash(0) を呼び出してもメモリが解放されないことに気付きました。関数でセットをローカルに定義し、関数が実行を終了した場合でも、セットによって予約されているメモリのほとんどはまだ予約されています。何か案は?
以下はサンプルコードです。テスター関数が返されてメインにいるとき、テスターによって使用されたメモリは解放されません
ありがとう
using namespace std;
using std::tr1::unordered_set;
void tester() {
mySet.rehash(x);
for (int i = 0; i < 10000000; i++)
mySet.insert(i);
mySet.clear();
}
int main() {
tester();
return 0;
}