Difference between std::swap and std::vector::swap

The **std::swap** function is used to swap two elements where as the **std::vector::swap** function can swap all elements of two different vector containers.

Below are some major key differences between std::swap and std::vector::swap,

std::swap | std::vector::swap |
---|---|

The std::swap() is a built-in function in C++ STL which swaps the value of any two variables passed to it as parameters. | The std::vector::swap() function is used to swap the entire contents of one vector with another vector of same type and size. |

The std::swap() is comparitively slower than std::vector::swap() function. | The std::vector::swap() is comparitively faster than std::swap() function. |

If std::swap() function is used for swapping two vectors, it will take O(n) time because it swaps the elements of two vector one by one. | The std::vector::swap function is faster than the normal swap function as it swaps the addresses(i.e. the containers exchange references to their data) of two vectors rather than swapping each element one by one which is done in constant time O(1). |

**Program 1**: To illustrate swapping of two vectors using std::swap().

`// CPP program to illustrate swapping ` `// of two vectors using std::swap()` ` ` `#include<bits/stdc++.h>` `using` `namespace` `std;` ` ` `int` `main()` `{` ` ` `vector<` `int` `> v1 = {1, 2, 3};` ` ` `vector<` `int` `> v2 = {4, 5, 6};` ` ` ` ` `// swapping the above two vectors` ` ` `// by traversing and swapping each element` ` ` `for` `(` `int` `i=0; i<3; i++)` ` ` `{` ` ` `swap(v1[i], v2[i]);` ` ` `}` ` ` ` ` `// print vector v1` ` ` `cout<<` `"Vector v1 = "` `;` ` ` `for` `(` `int` `i=0; i<3; i++)` ` ` `{` ` ` `cout<<v1[i]<<` `" "` `;` ` ` `}` ` ` ` ` `// print vector v2` ` ` `cout<<` `"\nVector v2 = "` `;` ` ` `for` `(` `int` `i=0; i<3; i++)` ` ` `{` ` ` `cout<<v2[i]<<` `" "` `;` ` ` `}` ` ` ` ` `return` `0;` `}` |

**Output:**

Vector v1 = 4 5 6 Vector v2 = 1 2 3

**Program 2**: To illustrate swapping of two vectors using std::vector::swap().

`// CPP program to illustrate swapping ` `// of two vectors using std::vector::swap()` ` ` `#include<bits/stdc++.h>` `using` `namespace` `std;` ` ` `int` `main()` `{` ` ` `vector<` `int` `> v1 = {1, 2, 3};` ` ` `vector<` `int` `> v2 = {4, 5, 6};` ` ` ` ` `// swapping the above two vectors` ` ` `// using std::vector::swap` ` ` `v1.swap(v2);` ` ` ` ` `// print vector v1` ` ` `cout<<` `"Vector v1 = "` `;` ` ` `for` `(` `int` `i=0; i<3; i++)` ` ` `{` ` ` `cout<<v1[i]<<` `" "` `;` ` ` `}` ` ` ` ` `// print vector v2` ` ` `cout<<` `"\nVector v2 = "` `;` ` ` `for` `(` `int` `i=0; i<3; i++)` ` ` `{` ` ` `cout<<v2[i]<<` `" "` `;` ` ` `}` ` ` ` ` `return` `0;` `}` |

**Output:**

Vector v1 = 4 5 6 Vector v2 = 1 2 3

Want to learn from the best curated videos and practice problems, check out the

**C++ Foundation Course**for Basic to Advanced C++ and**C++ STL Course**for foundation plus STL. To complete your preparation from learning a language to DS Algo and many more, please refer**Complete Interview Preparation Course****.**