Exemplo n.º 1
0
AbstractCollection *TreeSetImpl::clone(bool cloneData) const {
  TreeSetImpl *clone = new TreeSetImpl(*m_objectManager, *m_comparator);
  if(cloneData) {
    AbstractIterator *it = ((TreeSetImpl*)this)->getIterator(); TRACE_NEW(it);
    while(it->hasNext()) {
      clone->add(it->next());
    }
    SAFEDELETE(it);
  }
  return clone;
}
int main() {
  List myList;
  AbstractIterator* i = myList.makeIterator(); 
  for(int i = 0; i < 10; i++)
     myList.insert(i);
cout << "here" << endl;
  while(i->hasNext())
    cout << i->next() << endl;
  delete i;

  }
Exemplo n.º 3
0
BoardQueue* Board::successor(int TURN){
    BoardQueue *q = new BoardQueue();
    AbstractIterator *it;
    for(int i = 0; i < SIZE; i++){
        it = CreateRowForwardIterator(i, -1);
        for(it->First(); !it->isDone(); it->Next()){
            Point p = it->CurrentPoint();
            if(it->CurrentItem()!=NULL){
                if((TURN==BLACK && it->CurrentItem()->isBlack()) || (TURN==WHITE && it->CurrentItem()->isWhite())){
                    BoardQueue* tmp = it->CurrentItem()->successor(p);
                    if(tmp!= NULL)
                        q->merge(*tmp);
                    delete tmp;//checkkkkk
                }
            }
        }
        delete it;
    }
    return q;
}