Listing 5

typedef std::vector<int> array;
typedef std::map<std::string,employee> empl_coll;

// if we have number 3, erase it
if ( crange<array> r = rng::find(numbers, 3)) numbers.erase( r.begin());

// increment the first even number
if ( crange<array> r = rng::find_if(numbers, is_even)) ++(*r);

// compute the sum of all numbers >= 10
rng::sort(numbers);
crange<array> r = rng::lower_bound(numbers, 10);
int sum = 0;
while (r) sum += *r++;

// if John Doe works for us, give him a raise!
if ( crange<empl_coll> r = employees.find("John Doe")) r->salary() += 10000;