C++ 旋转到容器的末端

C++ 旋转到容器的末端,c++,stl,C++,Stl,我想做一个类似于std::rotate的旋转,但是以这样的方式,middle迭代器将成为新的第一个元素的新的最后一个元素istead然后您只需要跟随middle迭代器的元素成为新的开始。将其旋转为中间位置。乙二醇 template <class ForwardIterator> void rotate_last(ForwardIterator first, ForwardIterator middle, ForwardIterator last) { ForwardItera

我想做一个类似于
std::rotate
的旋转,但是以这样的方式,
middle
迭代器将成为新的第一个元素的新的最后一个元素istead

然后您只需要跟随
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);
    }
}
模板
void rotate_last(ForwardIterator first,ForwardIterator middle,ForwardIterator last)
{
转发迭代器itn(中间);
如果(中间!=最后一个)
{
标准:预付款(itn,1);
}
如果(itn!=最后一次)
{
标准::旋转(第一,itn,最后);
}
}

太好了。去做吧!:)