STL 中的 rotate_copy() 函数将 rotate 后的序列存放到 result 开始的位置。
#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 函数移动元素
#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
,如下图所示:
我们使用了 rotate_copy 函数,实现了集合中元素的移动。
STL 中的 rotate_copy() 函数将 rotate 后的序列存放到 result 开始的位置。