GeeksforGeeks App
Open App
Browser
Continue

# queue::swap() in C++ STL

Queue is also an abstract data type or a linear data structure, which follows a particular order in which the operations are performed. The order is First In First Out (FIFO). In a FIFO data structure, the first element added to the queue will be the first one to be removed. queue::swap() swap() function is used to exchange the contents of two queues but the queues must be of same type, although sizes may differ.

Syntax:

```queue1.swap(queue2)
OR
swap(queue1, queue2)

Parameters:
queue1 is the first queue object.
queue2 is the second queue object.```

Return value: None

Examples:

```Input :  queue1 = {1, 2, 3, 4}
queue2 = {5, 6, 7, 8}
queue1.swap(queue2);
Output : queue1 = {5, 6, 7, 8}
queue2 = {1, 2, 3, 4}

Input  : queue1 = {'a', 'b', 'c', 'd', 'e'}
queue2 = {'f', 'g', 'h', 'i'}
queue1.swap(queue2);
Output : queue1 = {'f', 'g', 'h', 'i'}
queue2 = {'a', 'b', 'c', 'd', 'e'}```

Errors and Exceptions 1. It throws an error if the queues are not of the same type. 2. It has a basic no exception throw guarantee otherwise.

## CPP

 `// CPP program to illustrate``// Implementation of swap() function``#include ``using` `namespace` `std;` `int` `main()``{``    ``// Take any two queues``    ``queue<``char``> queue1, queue2;``    ``int` `v = 96;``    ``for` `(``int` `i = 0; i < 5; i++) {``      ``queue1.push(v + 1);``      ``v++;``    ``}` `   ``for` `(``int` `i = 0; i < 4; i++) {``      ``queue2.push(v + 1);``      ``v++;``    ``}``      ` `    ``// Swap elements of queues``    ``queue1.swap(queue2);` `    ``// Print the first queue``    ``cout << "queue1 = ";``    ``while` `(!queue1.empty()) {``      ``cout << queue1.front() << " ";``      ``queue1.pop();``   ``}` `    ``// Print the second set``    ``cout << endl << "queue2 = ";``    ``while` `(!queue2.empty()) {``      ``cout << queue2.front() << " ";``      ``queue2.pop();``   ``}``        ` `    ``return` `0;``}`

Output:

```queue1 = f g h i
queue2 = a b c d e ```

Time complexity: Linear i.e. O(n)

Auxiliary Space : O(n) because using queue

My Personal Notes arrow_drop_up