突然忘了快速逆序的方法,在网上搜索vector逆序发现没有,于是自己写一下,帮助大家快速查找。
假如你有一个vector里面有元素1,2,3,4,5,则逆序方法如下。
方法一:
vector<int> v;
for(int i=1;i<=5;i++){
v.push_back(i);
}
sort(v.begin(),v.end(),greater<int>());
方法一比方法二方便。
方法二:
vector<int> v;
for(int i=1;i<=5;i++){
v.push_back(i);
}
sort(v.begin(),v.end());
reverse(v.begin(),v.end());
方法三:
static bool greater(int a,int b){
return a > b;
}
int main(){
vector<int> v;
for(int i=1;i<=5;i++){
v.push_back(i);
}
sort(v.begin(),v.end(),greater);
}
方法四(推荐):
你也可以通过使用rbegin,rend指针逆序排序。
vector<int> v;
for(int i=1;i<=5;i++){
v.push_back(i);
}
sort(v.rbegin(),v.rend());
另外:
或者你想要按照元素的绝对值排序,可以这么写。
static bool cmp(int a,int b){
return abs(a)>abs(b);
}
int main(){
vector<int> v;
v.push_back(3);
v.push_back(-2);
v.push_back(10);
sort(v.begin(),v.end(),cmp);
}