LEDA offers an efficient memory management system that is used internally for all node, edge and item types. This system can easily be customized for user defined classes by the ``LEDA_MEMORY" macro. You simply have to add the macro call ``LEDA_MEMORY(T)" to the declaration of a class T. This redefines new and delete operators for type T, such that they allocate and deallocate memory using LEDA's internal memory manager.
struct pair {
double x;
double y;
pair() { x = y = 0; }
pair(const pair& p) { x = p.x; y = p.y; }
friend ostream& operator<<(ostream&, const pair&) { ... }
friend istream& operator>>(istream&, pair&) { ... }
friend int compare(const pair& p, const pair& q) { ... }
LEDA_MEMORY(pair)
};
dictionary<pair,int> D;
leda::std_memory_mgr.clear();