This does not build. Can you guess why? Without testing it?
std::set< int > numbers;

for (int i = 0; i < 10; i++)
numbers.insert(i);

for (std::set< int >::iterator iter = numbers.begin();
iter != numbers.end(); iter++) {
int& i = *iter;
i++;
}
Update (23:40): John gave a correct answer in the comments.