|  | 
|  | 1 | +--- | 
|  | 2 | +Title: '.swap()' | 
|  | 3 | +Description: 'Exchanges the contents of one deque with another of the same type and size.' | 
|  | 4 | +Subjects: | 
|  | 5 | +  - 'Code Foundations' | 
|  | 6 | +  - 'Computer Science' | 
|  | 7 | +Tags: | 
|  | 8 | +  - 'Classes' | 
|  | 9 | +  - 'Containers' | 
|  | 10 | +  - 'Deques' | 
|  | 11 | +  - 'Data Structures' | 
|  | 12 | +CatalogContent: | 
|  | 13 | +  - 'learn-c-plus-plus' | 
|  | 14 | +  - 'paths/computer-science' | 
|  | 15 | +--- | 
|  | 16 | + | 
|  | 17 | +The **`.swap()`** [method](https://www.codecademy.com/resources/docs/cpp/methods) exchanges the contents of one [`deque`](https://www.codecademy.com/resources/docs/cpp/deque) with another deque of the same type. After the swap, each deque holds the elements that were originally in the other. | 
|  | 18 | + | 
|  | 19 | +## Syntax | 
|  | 20 | + | 
|  | 21 | +```pseudo | 
|  | 22 | +deque1.swap(deque2); | 
|  | 23 | +``` | 
|  | 24 | + | 
|  | 25 | +**Parameters:** | 
|  | 26 | + | 
|  | 27 | +- `deque2`: The deque whose contents will be exchanged with `deque1`. | 
|  | 28 | + | 
|  | 29 | +**Return value:** | 
|  | 30 | + | 
|  | 31 | +This method does not return a value. | 
|  | 32 | + | 
|  | 33 | +## Example | 
|  | 34 | + | 
|  | 35 | +This example demonstrates swapping the contents of two integer deques using `.swap()`: | 
|  | 36 | + | 
|  | 37 | +```cpp | 
|  | 38 | +#include <iostream> | 
|  | 39 | +#include <deque> | 
|  | 40 | +using namespace std; | 
|  | 41 | + | 
|  | 42 | +int main() { | 
|  | 43 | +  deque<int> deque1 = {1, 2, 3}; | 
|  | 44 | +  deque<int> deque2 = {10, 20, 30, 40}; | 
|  | 45 | + | 
|  | 46 | +  cout << "Before swap:" << endl; | 
|  | 47 | +  cout << "Deque 1: "; | 
|  | 48 | +  for (int num : deque1) cout << num << " "; | 
|  | 49 | +  cout << endl; | 
|  | 50 | + | 
|  | 51 | +  cout << "Deque 2: "; | 
|  | 52 | +  for (int num : deque2) cout << num << " "; | 
|  | 53 | +  cout << endl; | 
|  | 54 | + | 
|  | 55 | +  deque1.swap(deque2); | 
|  | 56 | + | 
|  | 57 | +  cout << "\nAfter swap:" << endl; | 
|  | 58 | +  cout << "Deque 1: "; | 
|  | 59 | +  for (int num : deque1) cout << num << " "; | 
|  | 60 | +  cout << endl; | 
|  | 61 | + | 
|  | 62 | +  cout << "Deque 2: "; | 
|  | 63 | +  for (int num : deque2) cout << num << " "; | 
|  | 64 | +  cout << endl; | 
|  | 65 | + | 
|  | 66 | +  return 0; | 
|  | 67 | +} | 
|  | 68 | +``` | 
|  | 69 | + | 
|  | 70 | +The output of this code is: | 
|  | 71 | + | 
|  | 72 | +```shell | 
|  | 73 | +Before swap: | 
|  | 74 | +Deque 1: 1 2 3 | 
|  | 75 | +Deque 2: 10 20 30 40 | 
|  | 76 | + | 
|  | 77 | +After swap: | 
|  | 78 | +Deque 1: 10 20 30 40 | 
|  | 79 | +Deque 2: 1 2 3 | 
|  | 80 | +``` | 
|  | 81 | + | 
|  | 82 | +## Codebyte Example | 
|  | 83 | + | 
|  | 84 | +This example swaps the contents of two deques containing strings: | 
|  | 85 | + | 
|  | 86 | +```codebyte/cpp | 
|  | 87 | +#include <iostream> | 
|  | 88 | +#include <deque> | 
|  | 89 | +#include <string> | 
|  | 90 | +using namespace std; | 
|  | 91 | +
 | 
|  | 92 | +int main() { | 
|  | 93 | +  deque<string> dequeA = {"apple", "banana"}; | 
|  | 94 | +  deque<string> dequeB = {"cherry", "date"}; | 
|  | 95 | +
 | 
|  | 96 | +  cout << "Before swap:" << endl; | 
|  | 97 | +  cout << "Deque A:"; | 
|  | 98 | +  for (const auto& value : dequeA) cout << ' ' << value; | 
|  | 99 | +  cout << "\nDeque B:"; | 
|  | 100 | +  for (const auto& value : dequeB) cout << ' ' << value; | 
|  | 101 | +
 | 
|  | 102 | +  dequeA.swap(dequeB); | 
|  | 103 | +
 | 
|  | 104 | +  cout << "\n\nAfter swap:" << endl; | 
|  | 105 | +  cout << "Deque A:"; | 
|  | 106 | +  for (const auto& value : dequeA) cout << ' ' << value; | 
|  | 107 | +  cout << "\nDeque B:"; | 
|  | 108 | +  for (const auto& value : dequeB) cout << ' ' << value; | 
|  | 109 | +} | 
|  | 110 | +``` | 
0 commit comments