<vector> functions

Visual Studio 2015

For the latest documentation on Visual Studio 2017, see Visual Studio 2017 Documentation.


Exchanges the elements of two vectors.

template <class Type, class Allocator>  
void swap(vector<Type, Allocator>& left, vector<Type, Allocator>& right);


The vector providing the elements to be swapped, or the vector whose elements are to be exchanged with those of the vector left.

The vector whose elements are to be exchanged with those of the vector right.


The template function is an algorithm specialized on the container class vector to execute the member function left. vector::swap ( right). These are instances of the partial ordering of function templates by the compiler. When template functions are overloaded in such a way that the match of the template with the function call is not unique, then the compiler will select the most specialized version of the template function. The general version of the template function, template < class T> void swap( T&, T&), in the algorithm class works by assignment and is a slow operation. The specialized version in each container is much faster as it can work with the internal representation of the container class.


See the code example for member function vector::swap for an example that uses the template version of swap.