赞
踩
默认从小到大进行排序
#include <bits/stdc++.h>
#define maxsize 100
using namespace std;
int main()
{
int n;
cin>>n;
int a[maxsize];
for(int i=0;i<n;i++) cin>>a[i];
//默认从小到大排序
sort(a,a+n);
for(int i=0;i<n;i++) cout<<a[i];
return 0;
}
写一个自定义排序的函数,必须为bool型
#include <bits/stdc++.h> #define maxsize 100 using namespace std; bool cmp(int x,int y)//数组内的数据是什么类型,传入的参数就是什么类型 { //对数组进行从大到小排序 return x>y; } int main() { int n; cin>>n; int a[maxsize]; for(int i=0;i<n;i++) cin>>a[i]; //默认从小到大排序 sort(a,a+n,cmp); for(int i=0;i<n;i++) cout<<a[i]<<" "; return 0; }
对结构体进行排序一般都需要自定义函数
#include <bits/stdc++.h> #define maxsize 100 using namespace std; struct Node { int data; int number[3]; }cnt[maxsize]; bool cmp(Node x,Node y)//传入的参数是结构体的类型 { //对结构体中的number的和进行从大到小排序 int sum1=x.number[0]+x.number[1]+x.number[2]; int sum2=y.number[0]+y.number[1]+y.number[2]; return sum1>sum2; } int main() { int n; cin>>n; for(int i=0;i<n;i++) cin>>cnt[i].number[0]>>cnt[i].number[1]>>cnt[i].number[2]; //自定义排序,传入定义的函数 sort(cnt,cnt+n,cmp); return 0; }
默认对first从小到大排序,当first相同时对second进行从小到大排序
#include <bits/stdc++.h> #define maxsize 100 using namespace std; pair <int,int> num[maxsize]; int main() { int n; cin>>n; for(int i=0;i<n;i++) cin>>num[i].first>>num[i].second; //默认排序 sort(num,num+n); for(int i=0;i<n;i++) cout<<num[i].first<<" "<<num[i].second<<endl; return 0; }
#include <bits/stdc++.h> #define maxsize 100 using namespace std; pair <int,int> num[maxsize]; bool cmp(pair<int,int> x,pair<int,int> y) { //对first进行从大到小排列 return x.first>y.first; } int main() { int n; cin>>n; for(int i=0;i<n;i++) cin>>num[i].first>>num[i].second; //默认排序 sort(num,num+n,cmp); for(int i=0;i<n;i++) cout<<num[i].first<<" "<<num[i].second<<endl; return 0; }
vector只能存储一组相同类型的元素
#include <bits/stdc++.h> #define maxsize 100 using namespace std; vector <int> vec; int main() { int n; cin>>n; int num; for(int i=0;i<n;i++) { cin>>num; vec.push_back(num); } //默认排序,从小到大 sort(vec.begin(),vec.end()); for(auto it=vec.begin();it !=vec.end();it++) { cout<<*it<<" "; } return 0; }
去除数组中重复的元素
#include <bits/stdc++.h> #define maxsize 100 using namespace std; vector <int> vec; int main() { int n; cin>>n; int num; for(int i=0;i<n;i++) { cin>>num; vec.push_back(num); } //去除重复元素 sort(vec.begin(),vec.end()); auto last=unique(vec.begin(),vec.end()); vec.erase(last,vec.end()); for(auto it=vec.begin();it !=vec.end();it++) { cout<<*it<<" "; } return 0; }
#include <bits/stdc++.h> #define maxsize 100 using namespace std; vector <int> vec; bool cmp(int a,int b) { return a>b; } int main() { int n; cin>>n; int num; for(int i=0;i<n;i++) { cin>>num; vec.push_back(num); } //自定义排序,从大到小 sort(vec.begin(),vec.end(),cmp); for(auto it=vec.begin();it !=vec.end();it++) { cout<<*it<<" "; } return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。