实现简单的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
}
本文介绍如何使用C++标准库中的vector容器进行逆序排序和元素去重操作,包括多种排序方法的实现,如使用greater<int>、自定义比较函数和lambda表达式,以及如何利用unique和erase函数实现向量去重。
1563

被折叠的 条评论
为什么被折叠?



