### Using allElementsDo and Applicators to Iterate Over a Collection

The following example shows the use of the allElementsDo function and applicators.

    //main.cpp - main file
    #include <iset.h>
    #include <iostream.h>
    #include "person.h"   //person.h from the previous examples

    typedef ISet<Person> AddressList;

    ostream& operator<<(ostream& os, Person A)
    {
        return (os << endl << A.GetPersonName() << " " <<
            A.GetTNumber());
    }

    class ListApplicator: public IConstantApplicator<Person> {
    public:
        IBoolean applyTo(Person const& A)
        {
            cout << A;
            return true;
        }
    };

    void ListFunction(AddressList const& List)
    {
        ListApplicator LA;
        List.allElementsDo (LA);
    }

    void main()
    {
        AddressList Business;
        AddressList::Cursor myCursor(Business);
        Person A("Peter Black","714-50706");
        Person B("Carl Render","714-540321");
        Person C("Sandra Summers","x");
        Person D("Mike Summers","x");
        Person E;
        Business.add(A);
        Business.add(B);
        Business.add(C);
        Business.add(D);

        //List of all elements in the set
        ListFunction(Business);
    }

This time you get the address listing using an applicator.

Introduction to the Collection Classes
Collection Characteristics
Overview of Iteration
Iteration with Cursors

Adding an Element to a Collection
Removing an Element from a Collection
Using Cursors to Locate and Access Elements
Using Cursors to Iterate Over a Collection
Cursors vs. Exception Handling
Instantiating the Collection Classes
Troubleshooting Problems while Using the Collection Class Library