## NAME

ACE_Array_Iterator - Implement an iterator over an ACE_Array.

## SYNOPSIS

    #include <ace/Containers.h>

    template<class T>
    class ACE_Array_Iterator
    {
      public:
        ACE_Array_Iterator (ACE_Array_Base<T> &);
        int next (T *&next_item);
        int advance (void);
        int done (void) const;
        void dump (void) const;
        ACE_ALLOC_HOOK_DECLARE;
      private:
        u_int current_;
        ACE_Array_Base<T> &array_;
    };

## DESCRIPTION

This iterator is safe in the face of array element deletions. But it is NOT safe if the array is resized (via the ACE_Array assignment operator) during iteration. That would be very odd, and dangerous.

## Initialization method.

    ACE_Array_Iterator (ACE_Array_Base<T> &);

## Iteration methods.

    int next (T *&next_item);

Pass back the `next_item` that hasn't been seen in the Array. Returns 0 when all items have been seen, else 1.

    int advance (void);

Move forward by one element in the Array. Returns 0 when all the items in the Array have been seen, else 1.

    int done (void) const;

Returns 1 when all items have been seen, else 0.

    void dump (void) const;

Dump the state of an object.

    ACE_ALLOC_HOOK_DECLARE;

Declare the dynamic allocation hooks.

## AUTHOR

Doug Schmidt

## LIBRARY

ace