当打开任务管理器查看内存使用情况时,它会以 0.3MB 内存开始使用。将 100,000 个对象添加到 ptr_vector 后,使用了 2.3MB 的内存。在向量上使用 .clear() 后,内存变为 .8-.9MB。内存使用量增加的原因是什么?
这是代码:
#include <iostream>
#include <boost/ptr_container/ptr_vector.hpp>
class T {
public:
static int nObjects;
T() {
nObjects++;
}
~T(){
nObjects--;
}
};
int T:: nObjects = 0;
int main() {
boost::ptr_vector<T> vec;
char pause;
std::cout << "Press any key to continue: ";
std::cin >> pause;
for(int i=0; i<100000; i++) {
vec.push_back(new T);
}
std::cout << T::nObjects << " objects created." << std::endl;
std::cout << "Press any key to continue: ";
std::cin >> pause;
vec.clear();
std::cout << T::nObjects << std::endl;
std::cout << "Press any key to exit: ";
std::cin >> pause;
return 0;
}
谢谢您的帮助。