public member function

std::array::swap

<array>
void swap ( array& arr ) noexcept(noexcept(swap(declval<value_type&>(),declval<value_type&>())));
Swap content
Exchanges the content of the array by the content of arr, which is another array object of the same type.

After the call to this member function, the elements in this container are those which were in arr before the call, and the elements of arr are those which were in this.

Unlike with the swap member functions of the other containers, this member function operates in linear time by performing as many individual swap operations between the individual elements as their size.

Parameters

arr
Another array container of the same type (which includes same size) as this whose content is swapped with that of this container.

Return value

none.

This member function can throw an exception if one of the element-wise swap calls throws itself an exception.

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// swap arrays
#include <iostream>
#include <array>

int main ()
{
  std::array<int,5> first = {10, 20, 30, 40, 50};
  std::array<int,5> second = {11, 22, 33, 44, 55};

  first.swap (second);

  std::cout << "first:";
  for (int& x : first) std::cout << " " << x;
  std::cout << std::endl;

  std::cout << "second:";
  for (int& x : second) std::cout << " " << x;
  std::cout << std::endl;

  return 0;
}


Output:
first contains: 11 22 33 44 55
second contains: 10 20 30 40 50

Complexity

Linear: Performs as many individual swap operations as the size of the arrays.

Iterator validity

The validity of all iterators, references and pointers is altered: They remain associated with the same positions in the same container they were associated before the call, but are now referring to the swapped values.

See also