we usually had most logic than a simple ArrayList or Vector in our collection classes...

so:
   JobCollection allJobs;
   Job aJob;
   Job aProgammer; // Better still

Then:
   foreach (allJobs.begin(), allJobs.end(), <function call>);

(Or you could simply walk through them)
   for (allJobs::iterator i= allJobs.begin(); i != allJobs::iterator.end(); i++) {
       // DO something
   }

// The each aspect is implied - so it falls out.