刚才利用vector做反转链表的时候,reverse函数的使用卡了我一会。然后我测试了一下reverse。代码如下:
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main(){
vector<int> a;
for(int i=0;i<10;i++) a.push_back(i);
for(int i=0;i+3<=a.size();i+=3) reverse(a.begin()+i,a.begin()+i+3);
for(int i=0;i<10;i++) cout<<a[i]<<" ";
return 0;
}
收获:
reverse(a.begin()+i,a.begin()+i+3) //翻转三个数,不是四个!
两个参数的差即为翻转元素的个数!