#include<iostream>
#include<algorithm>
#include<vector>
#include<functional>
#include<iterator>
#include<set>
using namespace std;
void print(vector<int> &l)
{
for (auto iter = l.begin(); iter != l.end(); ++iter)
cout << *iter << " ";
cout << endl;
}
int main()
{
vector<int> v1;
for (int i = 1; i <= 9; ++i)
v1.push_back(i);
print(v1);
reverse(v1.begin(), v1.end());//翻转
print(v1);
//翻转并且复制
reverse_copy(v1.begin()+1, v1.end()-1, ostream_iterator<int>(cout, " "));
cout << endl;
print(v1);reverse(v1.begin(), v1.end());
print(v1);//正常状态
rotate(v1.begin(), v1.begin() + 2,v1.end());
print(v1);
rotate(v1.begin(), find(v1.begin(),v1.end(),4), v1.end());//找到4放在开头
print(v1);
set<int> iset;
for (int i = 1; i <= 9; ++i)//set是一个二叉树,直接插入数据就行了
iset.insert(i);
for (auto iter = iset.begin(); iter != iset.end(); ++iter)
cout << *iter << " ";
cout << endl;
auto pos = iset.begin();//set是一个双向迭代器,随机迭代器可以pos=pos+4
/*advance(pos, 1);
rotate_copy(iset.begin(), pos, iset.end(),ostream_iterator<int>(cout," "));*/
auto pos1 = iset.end();
advance(pos1, -1);
cout << endl;
rotate_copy(iset.begin(), pos1, iset.end(), ostream_iterator<int>(cout, " "));
system("pause");
return 0;
}
逆转和旋转
最新推荐文章于 2023-04-23 19:21:41 发布