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
See also
TODO
This page was last modified on 2024-03-11