c++ - 旋转到容器的末端

标签 c++ stl

我想进行类似于 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);
    }
}

关于c++ - 旋转到容器的末端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22439059/

相关文章:

c++ - 求助于 std::vector 与 std::insert

c++ - 如何在没有临时设置的情况下将设置差异 s1-s2 存储在 s1 中?

c++ - 排序列表和结构 vector 之间的性能差距。 C++

c++ - 有选择地禁用库中的死代码消除

c++ - Qt C++ 初始化类和从类调用带有变量的方法

c# - const 在这里表示什么?

C++ 变量转换

c++ - 缓冲波形文件/样本管理

c++ - std::list 删除不兼容的迭代器

c++ - std::list<char> 列表类型为 (char * data, int length)