2 // { dg-options "-w -O3" }
3 // GROUPS passed incdec
8 ndbArtPtrVec (ndbArtPtrVec&);
10 class intndbArtPtrVecMap
15 intndbArtPtrVecMap(ndbArtPtrVec& dflt);
16 virtual ndbArtPtrVec& operator [] (int key) = 0;
17 virtual void del(int key) = 0;
19 virtual Pix first() = 0;
20 virtual void next(Pix& i) = 0;
21 virtual int& key(Pix i) = 0;
22 virtual ndbArtPtrVec& contents(Pix i) = 0;
24 struct intndbArtPtrVecAVLNode
27 intndbArtPtrVecAVLNode(int h, ndbArtPtrVec& c,
28 intndbArtPtrVecAVLNode* l=0, intndbArtPtrVecAVLNode* r=0);
30 class intndbArtPtrVecAVLMap : intndbArtPtrVecMap
33 intndbArtPtrVecAVLNode* root;
35 ndbArtPtrVec& operator [] (int key);
36 intndbArtPtrVecAVLMap(intndbArtPtrVecAVLMap&);
38 ndbArtPtrVec& intndbArtPtrVecAVLMap::operator [] (int item)
41 root = new intndbArtPtrVecAVLNode(item, def);
43 intndbArtPtrVecAVLMap::intndbArtPtrVecAVLMap(intndbArtPtrVecAVLMap& b) :intndbArtPtrVecMap(b.def)
45 for (Pix i = b.first(); i != 0; b.next(i))
46 (*this)[b.key(i)] = b.contents(i);