This is another valid way to make a copy of a vector, just use its constructor:
std::vector newvector(oldvector);
This is even simpler than using std::copy to walk the entire vector from start to finish to std::back_insert them into the new vector.
That being said, your .swap() one is not a copy, instead it swaps the two vectors. You would modify the original to not contain anything anymore! Which is not a copy.