STL rotate函数

STL rotate函数算法

STL 中的 rotate() 函数是循环移位函数,该算法用于交换集合中的元素的位置。

STL rotate函数详解

头文件

#include <algorithm>

语法

template <class ForwardIterator> ForwardIterator rotate (ForwardIterator first, ForwardIterator middle, ForwardIterator last);

参数

参数 描述
first 输入迭代器
middle 输入迭代器
last 输入迭代器

说明

效果是交换 [middle,last) 和 [first,middle) 部分的位置。

案例

STL rotate函数

使用 STL rotate 函数移动元素

#include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { std::cout << "嗨客网(www.haicoder.net)\n" << std::endl; vector<int> vi{1,2,3,4,5,6}; vector<int> vresult{10,20,30,40,50}; cout << "vi = "; for(int i:vi) { cout << i << " "; } cout<<endl; cout << "vresult = "; for(int i:vresult) { cout << i << " "; } cout<<endl; rotate(vi.begin(), vi.begin()+3, vi.end()); rotate(vresult.begin(), vresult.end()-1, vresult.end()); cout << "after rotate(vi.begin(),vi.begin()+3,vi.end())" << endl; cout << "vi = "; for (int i:vi) { cout << i << " "; } cout << endl; cout << "after rotate(vresult.begin(),vresult.end()-1,vresult.end());" << endl; cout << "vresult = "; for (int i:vresult) { cout << i << " "; } cout<<endl; return 0; }

我们在 Linux 下使用 g++ 进行编译,具体命令如下:

g++ rotate.cpp -std=c++11

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

43_STL rotate函数.png

我们使用了 rotate 函数,实现了集合中元素的移动。

STL rotate函数总结

STL 中的 rotate() 函数是循环移位函数,该算法用于交换集合中的元素的位置。