我正在使用 Boost::Polygon - Polygon 90 Set Concept 来存储大量的矩形。不幸的是,我完成后无法取消分配内存。
这是一个最小的例子。我想在某个点取消分配多边形集的内存。clear() 命令不会取消分配(如文档中所述)。
任何人都知道如何在不超出范围的情况下取消分配?
#include <iostream>
#include <boost/polygon/polygon.hpp>
// Namespaces
using namespace std;
namespace bp = boost::polygon;
// Typedefs
typedef bp::rectangle_data<int> bpRect;
typedef bp::polygon_90_set_data<int> bpPolygonSet;
int main()
{
bpPolygonSet ps;
cout << "Filling" << endl;
for (int i=0; i<10000000; i++){
bpRect rect(i, i, i+1, i+1);
ps.insert(rect);
}
// clear() does not de allocate
ps.clear();
cout << "Cleared" << endl;
std::cin.get();
return 0;
}