My first thought is the following to avoid problems with invalidating iterators.
{ // note: nested scope
vector temp(vec); // 1st copy
temp.insert(temp.end(), vec.begin(), vec.end()); // 2nd copy
temp.insert(temp.end(), vec.begin(), vec.end()); // 3rd copy
temp.swap(vec); // swap contents before temp is destroyed
}
On review, I think PorkyBrain and Emilio Garavaglia's answers might make more sense.