## `array::swap`

Swap two arrays.

### Synopsis

    void
    swap(
        array& other);

### Description

Exchanges the contents of this array with another array. Ownership of the respective `boost::container::pmr::memory_resource` objects is not transferred. If `this == &other`, this function call has no effect.

- If `*storage() == *other.storage()` all iterators and references remain valid.

- Otherwise, the contents are logically swapped by making copies, which can throw. In this case all iterators and references are invalidated.

### Complexity

If `*storage() == *other.storage()`, then constant; otherwise linear in `size() + other.size()`.

### Exception Safety

No-throw guarantee if `*storage() == *other.storage()`. Otherwise strong guarantee. Calls to `memory_resource::allocate` may throw.

### Parameters

Name | Description
--- | ---
`other` | The value to swap with.

Edit this page