STL rotate_copy函数

STL rotate_copy函数算法

STL 中的 rotate_copy() 函数将 rotate 后的序列存放到 result 开始的位置。

STL rotate_copy函数详解

头文件

#include <algorithm>

语法

template <class ForwardIterator, class OutputIterator> OutputIterator rotate_copy (ForwardIterator first, ForwardIterator middle, ForwardIterator last, OutputIterator result);

参数

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

说明

该函数是将 rotate 后的序列存放到 result 开始的位置。

案例

STL rotate_copy函数

使用 STL rotate_copy 函数移动元素

#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(6); cout << "vi = "; for(int i:vi) { cout << i << " "; } cout<<endl; cout << "vresult = "; for(int i:vresult) { cout << i << " "; } cout<<endl; rotate_copy(vi.begin(),vi.begin()+3,vi.end(),vresult.begin()); cout << "after rotate_copy(vi.begin(),vi.begin()+3,vi.end(),vresult.begin())" << endl; cout << "vi = "; for (int i:vi) { cout << i << " "; } cout << endl; cout << "vresult = "; for (int i:vresult) { cout << i << " "; } cout<<endl; return 0; }

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

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

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

44_STL rotate_copy函数.png

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

STL rotate_copy函数总结

STL 中的 rotate_copy() 函数将 rotate 后的序列存放到 result 开始的位置。