sort自界说排序函数tips【C++】
1、读txt文件#include<fstream>
fstream file("log.txt");//读入文件流
2、sort自界说排序
#include <algorithm>
sort(first,last,cmp);//分别代表出发点、尽头、排序方式!!!
对,last)(肯定要注意这里的区间是左闭又开)区间内数据根据cmp的方式进行排序。也可以不写第三个参数,此时按默认排序,从小到大进行排序。
2.1 sort自界说排序
boolcmp(int a,int b)
{
return b<a;
}
sort(a,a+n,cmp); 2.2重载比力运算符“<”
面向结构体、类、需要重载运算符
bool operator< (const Student& s1, const Student& s2)
{
if(s1.age==s2.age)
return s1.name <s2.name;//年龄相同时,按姓名小到大排
elsereturn s1.age > s2.age; //从年龄大到小排序
}
sort(a,a+n);
排序类例题:
https://i-blog.csdnimg.cn/direct/57bcafa746054ff1865aa8fe6af78051.png
解题思绪:重界说排序函数+打表界说封闭图形巨细
#include <iostream>
#include <algorithm>
using namespace std;
int n, a;
int num{1, 0, 0, 0, 1, 0, 1, 0, 2, 1};//表
int sum(int x)//拆位计算
{
int ans = 0;
while (x)
{
ans += num;
x /= 10;
}
return ans;
}
bool cmp (int a, int b)//cmp 自定义判断
{
int na = sum(a), nb = sum(b);
if (na != nb) return na < nb;
return a < b;
}
int main()
{
cin >> n;
for (int i = 1; i <= n; i++) cin >> a;
sort(a + 1, a + n + 1, cmp);
for (int i = 1; i <= n; i++) cout << a << ' ';
return 0;
}
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]