实现简单的vector的逆序排序和去重
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool comp(int a, int b){
return a > b;
}
int main(){
int n;
int i;
cin>>n;
cout<<n<<endl;
vector<int> vec;
while(n--){
cin>>i;
vec.push_back(i);
}
cout<<"原序列"<<endl;
for(auto x:vec) cout<<x;
cout<<endl;
// 从小到大排序
sort(vec.begin(), vec.end());
cout<<"从小到大排序:"<<endl;
for(int x:vec) cout<<x;
cout<<endl;
// 从大到小排序:方法1
sort(vec.begin(), vec.end(), greater<int>());
cout<<"从大到小排序方法1"<<endl;
for(auto x:vec) cout<<x;
cout<<endl;
// 从大到小排序
sort(vec.begin(), vec.end());
sort(vec.begin(), vec.end(), comp);
cout<<"从大到小排序方法2"<<endl;
for(auto x:vec) cout<<x;
cout<<endl;
// 从大到小排序:方法3 使用lambda函数
sort(vec.begin(), vec.end());
sort(vec.begin(), vec.end(), [](int a, int b){return a > b;});
cout<<"从大到小排序方法3"<<endl;
for(auto x:vec) cout<<x;
cout<<endl;
// 去重
auto end_unique = unique(vec.begin(), vec.end());
vec.erase(end_unique, vec.end());
// 去重后
for(auto x:vec) cout<<x;
cout<<endl;
return 0;
// 输入:
8
1 2 2 6 7 5 5 4
//输出:
8
原序列
12267554
从小到大排序:
12245567
从大到小排序方法1
76554221
从大到小排序方法2
76554221
从大到小排序方法3
76554221
765421
}