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,最后);
}
}
太好了。去做吧!:)