When I erase an iterator in a for loop like this one, will it cause a crash? Or will the iterator i automatically go to the next value?Code:for (std::vector<Block>::iterator i = blocks.begin(); i != blocks.end(); ++i) { if ((*i).trigger) blocks.erase(i); }