旋转到容器的末端

Rotate to the end of container

本文关键字:旋转      更新时间:2023-10-16

我想做一个类似于std::rotate的旋转,但middle迭代器将成为新的最后一个元素,而不是新的第一个元素

那么您只需要middle迭代器后面的元素作为新的开始。旋转为middle。如

template <class ForwardIterator>
void rotate_last(ForwardIterator first, ForwardIterator middle, ForwardIterator last)
{
    ForwardIterator itn(middle);
    if (middle != last)
    {
       std::advance(itn, 1);
    }
    if (itn != last)
    {
       std::rotate(first, itn, last);
    }
}