На этом шаге мы перечислим алгоритмы перестановки.
Перестановочными алгоритмами называются алгоритмы, изменяющие порядок следования элементов (но не их значения) посредством присваивания и перестановки их значений. В таблице 1 перечислены перестановочные алгоритмы стандартной библиотеки C++. Как и в случае с модифицирующими алгоритмами, их приемником не может быть ассоциативный контейнер, поскольку элементы ассоциативного контейнера считаются константными.
| Название | Описание |
|---|---|
| reverse() | Переставляет элементы в обратном порядке |
| reverse_copy() | Копирует элементы, переставленные в обратном порядке |
| rotate() | Производит циклический сдвиг элементов |
| rotate_copy() | Копирует элементы с циклическим сдвигом |
| next_permutation() | Переставляет элементы |
| prev_permutation() | Переставляет элементы |
| random_shuffle() | Переставляет элементы в случайном порядке |
| partition() | Изменяет порядок следования элементов так, что элементы, соответствующие критерию, оказываются спереди |
| stable_partition() | To же, что и partition(), но с сохранением относительного расположения элементов, соответствующих и не соответствующих критерию |
На следующем шаге мы рассмотрим алгоритмы сортировки.