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 using namespace std;    int main() {     vector v1 = {1, 2, 3};     vector 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<

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 using namespace std;    int main() {     vector v1 = {1, 2, 3};     vector 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<

Output:

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

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.