CBset ist eine Template-Klasse, die zur Verwaltung beliebiger
Mengen eingesetzt werden kann. Für den Template-Typen müssen
aber zumindest die Operatoren == und < definiert sein.
Mit dieser Klassen werden zum Beispiel die Objekte in den Sichtenextensionen
und die Attributmengen verwaltet. Die Daten werden in einem AVL-Baum
gespeichert.
template <class V>
class CBset {
public:
// Constructors
CBset();
CBset(V*);
CBset(const CBset<V>& s);
// Destructor
~CBset();
// Methods
bool insert(V*);
bool remove(V&);
bool member(V&);
bool isEmpty();
V* first();
V* next();
V* previous();
V* last();
V* find(V& v);
V* findNext(V& v);
int size();
// Operators
CBset<V>& operator=(const CBset<V>& s);
V& operator[](int i);
private:
V* pData;
CBset<V>* pLeft;
CBset<V>* pRight;
CBset<V>* pIterator;
// ...
};