My two sense...
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.