std::rotate
Актуально для C++23.
#include <algorithm>
Актуально на 2024-03-11.
Define overload #1
template<class ForwardIterator> constexpr ForwardIterator rotate(ForwardIterator first, ForwardIterator middle, ForwardIterator last);
Выполняет левый поворот диапазона [first, last] так что, элементы на которые указывает middle, перемещаются в начало диапазона.
Перемещение реализовано с помощью алгоритма std::iter_swap.
Вернёт first + (last - middle).
Example, possible implementation
Define overload #2
template<class ExecutionPolicy, class ForwardIterator> ForwardIterator rotate(ExecutionPolicy&& exec, ForwardIterator first, ForwardIterator middle, ForwardIterator last);
TODO
Example, possible implementation
Examples
Example 1:
#include <iostream> #include <algorithm> #include <vector> int main() { std::vector<int> set1 = {1, 2, 3, 4, 6}; std::rotate(std::begin(set1), std::begin(set1)+3, std::end(set1)); for (auto x : set1) { std::cout << x << std::endl; } return 0; }
4 6 1 2 3
Changelog
C++26
TODOC++23
TODOC++20
TODOC++17
TODOC++14
TODOC++11
TODOSee also
TODO
This page was last modified on 2024-03-11