
- C++ Library - Home
- C++ Library - <fstream>
- C++ Library - <iomanip>
- C++ Library - <ios>
- C++ Library - <iosfwd>
- C++ Library - <iostream>
- C++ Library - <istream>
- C++ Library - <ostream>
- C++ Library - <sstream>
- C++ Library - <streambuf>
- C++ Library - <atomic>
- C++ Library - <complex>
- C++ Library - <exception>
- C++ Library - <functional>
- C++ Library - <limits>
- C++ Library - <locale>
- C++ Library - <memory>
- C++ Library - <new>
- C++ Library - <numeric>
- C++ Library - <regex>
- C++ Library - <stdexcept>
- C++ Library - <string>
- C++ Library - <thread>
- C++ Library - <tuple>
- C++ Library - <typeinfo>
- C++ Library - <utility>
- C++ Library - <valarray>
- The C++ STL Library
- C++ Library - <array>
- C++ Library - <bitset>
- C++ Library - <deque>
- C++ Library - <forward_list>
- C++ Library - <list>
- C++ Library - <map>
- C++ Library - <multimap>
- C++ Library - <queue>
- C++ Library - <priority_queue>
- C++ Library - <set>
- C++ Library - <stack>
- C++ Library - <unordered_map>
- C++ Library - <unordered_set>
- C++ Library - <vector>
- C++ Library - <algorithm>
- C++ Library - <iterator>
- The C++ Advanced Library
- C++ Library - <any>
- C++ Library - <barrier>
- C++ Library - <bit>
- C++ Library - <chrono>
- C++ Library - <cinttypes>
- C++ Library - <clocale>
- C++ Library - <condition_variable>
- C++ Library - <coroutine>
- C++ Library - <cstdlib>
- C++ Library - <cstring>
- C++ Library - <cuchar>
- C++ Library - <charconv>
- C++ Library - <cfenv>
- C++ Library - <cmath>
- C++ Library - <ccomplex>
- C++ Library - <expected>
- C++ Library - <format>
- C++ Library - <future>
- C++ Library - <flat_set>
- C++ Library - <flat_map>
- C++ Library - <filesystem>
- C++ Library - <generator>
- C++ Library - <initializer_list>
- C++ Library - <latch>
- C++ Library - <memory_resource>
- C++ Library - <mutex>
- C++ Library - <mdspan>
- C++ Library - <optional>
- C++ Library - <print>
- C++ Library - <ratio>
- C++ Library - <scoped_allocator>
- C++ Library - <semaphore>
- C++ Library - <source_location>
- C++ Library - <span>
- C++ Library - <spanstream>
- C++ Library - <stacktrace>
- C++ Library - <stop_token>
- C++ Library - <syncstream>
- C++ Library - <system_error>
- C++ Library - <string_view>
- C++ Library - <stdatomic>
- C++ Library - <variant>
- C++ STL Library Cheat Sheet
- C++ STL - Cheat Sheet
- C++ Programming Resources
- C++ Programming Tutorial
- C++ Useful Resources
- C++ Discussion
C++ Array::swap() Function
The C++ std::array::swaps() function is used to exchange the contents of two array objects of the same type and size. It efficiently swaps the elements between the two arrays without requiring the explicit element by element copy. It ensures that both arrays retain their size and type integrity after the swap.
Syntax
Following is the syntax for std::array::swap() function.
void swap (array& x) noexcept(noexcept(swap(declval<value_type&>(),declval<value_type&>())));
Parameters
- x − It indicates the array container of the same type.
Return Value
It does not return anything.
Exceptions
None
Time complexity
Linear i.e. O(n)
Example 1
In the following example, we are going to consider the basic usage of the swap() function.
#include <iostream> #include <array> int main() { std::array < int, 3 > x = {1,3,5}; std::array < int, 3 > y = {2,4,6}; x.swap(y); std::cout << "\n\nAfter swap:" << std::endl; std::cout << "x: "; for (int num: x) std::cout << num << " "; std::cout << "\ny: "; for (int num: y) std::cout << num << " "; return 0; }
Output
Output of the above code is as follows −
After swap: x: 2 4 6 y: 1 3 5
Example 2
Consider the following example, where we are going to swap the array of different size and observing the output.
#include <iostream> #include <array> int main() { std::array < int, 2 > x = {1,2}; std::array < int, 3 > y = {4,5,6}; x.swap(y); return 0; }
Output
If we run the above code it will generate the following output −
main.cpp: In function 'int main()': main.cpp:7:12: error: cannot convert 'std::array<int, 3>' to 'std::array<int, 2>&' 7 | x.swap(y); | ^ | | | std::array<int, 3>
Example 3
Let's look at the following example, where we are going to swap the arrays of double values.
#include <iostream> #include <array> int main() { std::array < double, 2 > x = {1.2,3.4}; std::array < double, 2 > y = {0.3,0.6}; x.swap(y); std::cout << "x after swap: "; for (double num: x) std::cout << num << " "; std::cout << "\ny after swap: "; for (double num: y) std::cout << num << " "; return 0; }
Output
Following is the output of the above code −
x after swap: 0.3 0.6 y after swap: 1.2 3.4