00001 00005 class SetSimplest(Type) : public HandleId 00006 00007 { 00008 Type** members; 00009 VecSimple(bool) marked; 00010 00011 int n_members; 00012 int max_size; 00013 int i; 00014 00015 void newMember (); 00016 00017 public: 00018 SetSimplest(Type) (int max_size = 100); 00019 00020 00021 ~SetSimplest(Type) (); 00022 00023 int getNoMembers () const { return n_members; } 00024 00025 Type& getMember (int i_) { return *members[i_-1]; } 00026 const Type& getMember (int i_) const { return *members[i_-1]; } 00027 00028 00029 Type& operator () (int i_) { return *members[i_-1]; } 00030 const Type& operator () (int i_) const { return *members[i_-1]; } 00031 00032 bool ok () const { return getbool(n_members>0); } 00033 00034 void add (Type& object); 00035 void mark (int i_) { marked(i_) = true; } 00036 void removeMarks () { marked = false; } 00037 void removeLast (); 00038 00039 void print (Os os) const; 00040 void scan 00041 ( 00042 Is is, 00043 char startmark = '\0', 00044 char sepmark = ' ', 00045 char endmark = ';' 00046 ); 00047 void initIterator (); 00048 bool next (Type*& object); 00049 }; 00050 00051