我想进行类似于std::rotate
的旋转,但是middle
迭代器将成为新的最后一个元素而不是新的第一个元素
答案 0 :(得分:2)
然后你只需要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);
}
}