std :: rotate на внешнем векторе должен сделать трюк:
#include <algorithm> // std::rotate
#include <iterator> // std::next
std::rotate(A.begin(), std::next(A.begin()), A.end());
A.begin()
- возвращает итератор, указывающий на первый элемент - или end()
, если этопустой вектор.
std::next(A.begin())
- возвращает итератор, указывающий на второй элемент в векторе.
A.end()
- возвращает итератор, указывающий на один шаг после последнего элемента в векторе.
Первый и последний аргумент (A.begin()
и A.end()
) устанавливает границы для std::rotate
, а средний аргумент сообщает ему, каким должен быть новый первый элемент.