Without iterators:
for(std::size_t i = 0; i < v.size(); ++i) { if(v[i].dead) { std::swap(v[i], v.back()); v.pop_back(); --i; } }
Remember that modification of the for-loop index inside the loop is one bad programming practice. It usually leads to infinite loops and computer hang ups.

Find content
Not Telling